+2010-01-15 Marek Habersack <mhabersack@novell.com>
+
+ * ChangePassword.cs: BaseChangePasswordContainer forwards
+ EnsureChildControls call to its owner, so that finding controls in
+ the container works correctly.
+
+2009-11-30 Marek Habersack <mhabersack@novell.com>
+
+ * WebControl.cs: HasAttributes made available as internal for 1.1
+ Avoid calling the Attributes getter many times in
+ CopyBaseAttributes.
+ If TrackViewState is called and attributes state bag already
+ exists, mark all items in the latter as dirty.
+
+ * CheckBox.cs, Button.cs, ImageButton.cs, LinkButton.cs: do not
+ create the Attributes collection if not necessary.
+
+2009-11-16 Marek Habersack <mhabersack@novell.com>
+
+ * TreeNodeCollection.cs: whenever a node is added, let the owner
+ know about it.
+
+ * TreeNode.cs: added internal property HadChildrenBeforePopulating
+ which is used to let TreeView know about an error condition where
+ a populate-on-demand node contains children added outside the
+ OnTreeNodePopulate event
+
+ * TreeView.cs: if a node has any child nodes and PopulatOnDemand
+ is set, throw an exception from RenderNode. This is the behavior
+ of .NET
+
+2009-11-13 Marek Habersack <mhabersack@novell.com>
+
+ * TableRowCollection.cs: added .NET compatibility NREX throws to
+ several methods.
+ Whenever a row is added/removed, its Container property is
+ set. Fixes bug #551666
+
+ * TableRow.cs: introduced an internal property, Container, which
+ is set by TableRowCollection whenever this row is added/removed
+ to/from the collection. This allows the row to notify the
+ collectio and, in consequence, collection owner that TableSection
+ has been set and thead/tbody/tfoot elements need to be
+ generated. Fixes bug #551666
+
+2009-11-10 Marek Habersack <mhabersack@novell.com>
+
+ * PasswordRecovery.cs:
+ {Question,Success,UserName}TemplateContainer must all be populated
+ the first time the property is accessed, so that calling
+ FindControl on the container returns valid and expected
+ results. If the associated template is not defined, though,
+ populating is postponed till CreateChildControls is called -
+ that's where default, empty, template will be created. This is
+ required to fix YetAnotherForum's password recovery control.
+ Mail template used in SendPasswordByMail must match the one used
+ in .NET (it has to end with a newline) as YAF parses the message
+ to retrieve user name and password and breaks if the last line
+ doesn't end with a newline character.
+
+2009-10-30 Marek Habersack <mhabersack@novell.com>
+
+ * PasswordRecovery.cs: mail message replacements should include <%
+ Password %> and <% UserName %> and matching should be
+ case-insensitive. Fixes bug #545370
+
+2009-10-28 Marek Habersack <mhabersack@novell.com>
+
+ * ListControl.cs: OnDataBinding must call base implementation
+ before performing the binding, so that DataSource can be assigned
+ from within the handler.
+
+2009-10-13 Marek Safar <marek.safar@novell.com>
+
+ * WebColorConverter.cs: Delegate ConvertFrom to
+ ColorTranslator.FromHtml, it is correctly implemented and knows
+ many more tricks.
+
+2009-10-13 Marek Habersack <mhabersack@novell.com>
+
+ * WebColorConverter.cs: don't use a dictionary to check for valid
+ color names, use Color.IsKnownColor instead. Update for bug
+ #546173 fix.
+ Added more CSS2 color name mappings.
+
+2009-10-12 Marek Habersack <mhabersack@novell.com>
+
+ * WebColorConverter.cs: when converting from color name, check if
+ the returned color's name is a member of the
+ System.Drawing.KnownColor enumeration to test for error condition,
+ as some colors might be #000000. Preserve the old error check as a
+ fallback only.
+ Map "captiontext" and "background" color names to
+ "ActiveCaptionText" and "Desktop", respectively, before passing
+ them to Color.FromName (). Fixes bug #546173
+
+2009-10-02 Marek Habersack <mhabersack@novell.com>
+
+ * GridView.cs: added two 3.5 properties - SelectedPersistedDataKey
+ and IPersistedSelector.DataKey.
+
+ * BaseDataBoundControl.cs: slight optimizations to FindDataSource
+
+2009-09-28 Marek Habersack <mhabersack@novell.com>
+
+ * DataBoundControl.cs: Initialize sets RequiresDataBinding
+ properly, only when we're not data-bound already, when we aren't
+ in postback or when we are in postback, but with viewstate
+ enabled. Fixes bug #542076
+
+2009-09-01 Marek Habersack <mhabersack@novell.com>
+
+ * ObjectDataSourceView.cs: ExecuteSelect must call
+ QueryTotalRowCount after executing the select method (that's what
+ .NET does)
+
+2009-08-25 Marek Habersack <mhabersack@novell.com>
+
+ * WebColorConverter.cs: inform the user that the might need to
+ check if libgdiplus is installed when parsing a color name
+ fails. Fixes bug #533749
+
+2009-08-21 Marek Habersack <mhabersack@novell.com>
+
+ * Menu.cs: separator image is rendered next to the item in
+ horizontal layout and is preceeded by 3px spacer (unless
+ itemSpacing is set) to make output match .NET. Fixes bug #474716
+
+ * TreeNodeCollection.cs: {Save,Load}ViewState now store/load the
+ type of the node, if node is a of a custom type. Fixes bug #475997
+
+2009-06-29 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * Parameter.cs: add new DbType property.
+
+2009-06-16 Marek Habersack <mhabersack@novell.com>
+
+ * IPersistedSelector.cs: removed AspNetHostingPermission
+ attributes from the 4.0 profile.
+
+ * IDataBoundControl.cs, IDataBoundItemControl.cs,
+ IDataBoundListControl.cs, IFieldControl.cs: added
+
+ * DetailsView.cs: control implements 4.0 IDataBoundItemControl
+ interface.
+
+ * DataBoundControl.cs: implemented 4.0 property DataSourceObject
+ (internal for 2.0) and made the InternalPerformDataBinding method
+ internal for the 4.0 profile.
+
+2009-06-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * ContentControlBuilderInternal.cs: detect missing
+ ContentPlaceHolderID attribute when parsing instead of throwing a
+ nullref later on.
+
+2009-05-29 Marek Habersack <mhabersack@novell.com>
+
+ * ListItem.cs: when tracking view state is turned on after
+ attributes have been set, make sure that the associated state bag
+ begins tracking state and that all of its existing items are
+ marked as dirty. Do the same after loading view state. Fixes bug
+ #507836
+
+2009-04-29 Marek Habersack <mhabersack@novell.com>
+
+ * DataBoundControl.cs: added InternalGetDataSource method, used by
+ DynamicData
+
+2009-04-28 Marek Habersack <mhabersack@novell.com>
+
+ * GridView.cs: implemented ColumnsGenerator and enabled its use in
+ CreateColumns.
+
+ * DetailsView.cs: implemented the RowsGenerator property and
+ enabled its use in CreateFieldSet.
+
+2009-04-07 Marek Habersack <mhabersack@novell.com>
+
+ * TreeView.js: removed nodeText parameter from the JS calls.
+
+ * TreeView.cs: encode | characters into U+007C, so that
+ RaiseCallbackEvent doesn't get confused.
+ Removed nodeText parameter from the JS calls.
+
+2009-04-06 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * TreeNode.cs: reset the path data for all child nodes too.
+ * TreeView.cs: HtmlAttribute encode the node text. When rebuilding the
+ node tree, set the correct index for the nodes so that the Path is
+ correct.
+
+2009-04-06 Marek Habersack <mhabersack@novell.com>
+
+ * TreeView.js: TreeView_ToggleExpand now takes more parameters - a
+ full definition of treeview's node contents.
+ Added new function, TreeView_PopulateNode, which partially takes
+ over role of the PopulateNode function generated in
+ TreeView.OnPreRender (see below). Fixes bug #492307
+
+ * TreeView.cs: RaiseCallbackEvent needs to recreate the event
+ target's parental tree all the way from the root to the node and
+ populate only the leaf (requested) node. This avoids calling the
+ TreeNodePopulate handler more times than needed. Fixes bug #492307
+ OnPreRender: moved the script code to constants and the script
+ body is now generated using StringBuilder instead of a series of
+ String.Format calls.
+ GetClientExpandEvent: adjusted code for new TreeView JavaScript
+ API.
+
+2009-03-17 Marek Habersack <mhabersack@novell.com>
+
+ * Unit.cs: introduced a field to tell the difference between empty
+ (as in Unit.Empty) and 0px units.
+
+2009-03-06 Marek Habersack <mhabersack@novell.com>
+
+ * WebControl.cs: if savedState is not an instance of Pair in
+ LoadViewState, do not attempt to load from it.
+
+2009-02-10 Marek Habersack <mhabersack@novell.com>
+
+ * ImageButton.cs: AddAttributesToRender renders the onclick
+ attribute only if any of the following is true:
+ - OnClientClick is not empty
+ - Validation is enabled for the control
+ - PostBackUrl is used
+ PostBackOptions now indicate that control requires the javascript
+ protocol for the handler.
+ RaisePostBackEvent passes String.Empty as the argument.
+ Fixes bug #463939
+
+2009-02-09 Marek Habersack <mhabersack@novell.com>
+
+ * ObjectDataSourceView.cs: ExecuteSelect returns a single-item
+ array of objects containing the result, if the result isn't one of
+ DataSet, DataTable or IEnumerable. Fixes bug #471767
+
+2009-02-06 Marek Habersack <mhabersack@novell.com>
+
+ * Style.cs: if CssClass is null, return String.Empty. Fixes bug
+ #473303
+ Added a range check to the BorderStyle property.
+
+2009-02-05 Marek Habersack <mhabersack@novell.com>
+
+ * Login.cs: check the value of DisplayRememberMe when creating
+ the child controls. Fixes #468359
+
+2009-01-20 Marek Habersack <mhabersack@novell.com>
+
+ * Substitution.cs: added. Fixes bug #467460
+
+2009-01-13 Marek Habersack <mhabersack@novell.com>
+
+ * XmlBuilder.cs: updates related to ControlBuilder cleanup.
+
+2008-12-01 Marek Habersack <mhabersack@novell.com>
+
+ * Style.cs: WriteStyleAttributes must not use the fontinfo field
+ directly, it has to be done via the Font property. Fixes bug
+ #449793
+
+2008-11-15 Marek Habersack <mhabersack@novell.com>
+
+ * ContentPlaceHolder.cs, Content.cs, FormViewPagerRow.cs,
+ ChangePassword.cs, DetailsViewPagerRow.cs: implements
+ INonBindingContainer interface.
+
+ * Wizard.cs: implement INonBindingContainer interface for several
+ private/internal classes.
+
+2008-10-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * ImageButton.cs: clicking an image causes a postback.
+ Bug #439004 fixed.
+
+2008-10-24 Marek Habersack <mhabersack@novell.com>
+
+ * CheckBox.cs: register for event validation in Render ().
+
+2008-10-21 Marek Habersack <mhabersack@novell.com>
+
+ * XmlDataSource.cs: DataFile may be an URL.
+
+2008-10-17 Marek Habersack <mhabersack@novell.com>
+
+ * ImageMap.cs: added the SupportsEventValidation attribute to the
+ class.
+ Validate the event in RaisePostBackEvent ().
+ Register for event validation in Render ().
+
+ * DropDownList.cs, ListBox.cs: validate the event in LoadPostData ().
+
+ * TextBox.cs: validate the event in LoadPostData ().
+ Register for event validation in AddAttributesToRender ().
+
+ * HiddenField.cs: validate the event in RaisePostDataChangedEvent.
+ Register for event validation in Render ().
+
+ * RadioButton.cs: validate the event in LoadPostData ().
+ Register for event validation in InternalAddAttributesToRender.
+
+ * CheckBox.cs, RadioButtonList.cs: validate the event in
+ RaisePostDataChangedEvent.
+
+ * Menu.cs: added the SupportsEventValidation attribute to the
+ class.
+ Validate the event in RaisePostBackEvent ().
+ Register for event validation in GetClientEvent ().
+
+ * DetailsView.cs, GridView.cs: validate the event in
+ RaisePostBackEvent ().
+ Register for validation in GetCallbackScript () and in OnPreRender
+
+ * Button.cs, Table.cs, BulletedList.cs, Calendar.cs, LinkButton.cs,
+ ImageButton.cs, TreeView.cs: validate the event in RaisePostBackEvent ().
+
+2008-10-14 Marek Habersack <mhabersack@novell.com>
+
+ * CompositeDataBoundControl.cs: renamed the itemcount ViewState
+ item from "_ItemCount" to "_!ItemCount" for .NET
+ compatibility. This item is accessed and used by some commercial
+ ASP.NET controls.
+
+ * DataBoundControl.cs: OnPagePreLoad must force databinding also
+ when the request is not a postback.
+
+2008-10-13 Marek Habersack <mhabersack@novell.com>
+
+ * Table.cs, TableRowCollection.cs, TableRow.cs: render table
+ sections when necessary. Fixes bug #434555
+
+2008-10-08 Marek Habersack <mhabersack@novell.com>
+
+ * ControlParameter.cs: Evaluate calls DataBinder.Eval to do the
+ evaluation now. This makes it support complex expressions.
+
+2008-09-30 Sebastien Pouliot <sebastien@ximian.com>
+
+ * RoleGroupCollection.cs: Fix recursive calls (wrong target)
+ [Found using Gendarme's BadRecursiveInvocationRule]
+
+2008-09-28 Sebastien Pouliot <sebastien@ximian.com>
+
+ * XmlDataSource.cs: Make sure the result of the multiplication is a
+ long (not an integer casted into a long since it could overflow).
+ [Found using Gendarme's ReviewCastOnIntegerMultiplicationRule]
+
+2008-09-17 Juraj Skripsky <js@hotfeet.ch>
+
+ * RadioButton.cs (ValueAttribute, LoadPostData): Fixes bug #426959.
+
+2008-09-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * IPersistedSelector.cs : new in 3.5 SP1.
+
+2008-09-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DataBoundControlMode.cs : new 3.5 SP1 type.
+
+2008-08-25 Marek Habersack <mhabersack@novell.com>
+
+ * DataBoundControl.cs: set RequiresDataBinding to true in
+ Initialize only if not in a postback, if not data bound and if the
+ view state is enabled. Fixes bug #398318
+ UpdateViewData removes the OnDataSourceViewChanged handler before
+ connecting to the datasource and restores it before returning to
+ the caller.
+ OnLoad gets the data source before initialization, to avoid
+ premature OnDataSourceViewChanged triggers. Fixes bug #398318
+ Do not reconnect to the data source if we already have a valid one.
+
+2008-08-18 Marek Habersack <mhabersack@novell.com>
+
+ * Unit.cs: rewrote the unit parser in a slightly slower, but more
+ correct, way. Fixes bug #417502
+
+2008-07-28 Marek Habersack <mhabersack@novell.com>
+
+ * TreeView.cs: when TreeView is displaying a site map and there is
+ no node selected by the user, select the node corresponding to the
+ current page, if any.
+
+2008-07-24 Marek Habersack <mhabersack@novell.com>
+
+ * DataGrid.cs: removed the private class TableID and moved its
+ code to ChildTable.cs (see below). 2.0 instantiates teh ChildTable
+ with the owner parameter now. Fixes bug #400377
+
+ * ChildTable.cs: refactoring - moved code from TableID previously
+ defined in DataGrid.cs to here and made the class available under
+ different names for both 1.x and 2.x profiles. Fixes bug #400377
+
+ * MailDefinition.cs: look for the mail body file in the correct
+ path. Patch from Jackson Harper <jaharper@novell.com>,
+ thanks! Fixes bug #408699
+
+ * PasswordRecovery.cs: do not ask password recovery question if
+ it's disabled. Patch from Jackson Harper <jaharper@novell.com>,
+ thanks! Fixes bug #408696
+
+2008-07-16 Marek Habersack <mhabersack@novell.com>
+
+ * XmlDataSource.cs: check if Page isn't null before stringifying
+ it in GetDataKey (), fixes bug #409492
+
+2008-07-13 Roei Erez <roeie@mainsoft.com>
+
+ * GridView.cs: When the RowDataBound event is invoked, the value
+ of GridView1.DataKeys should contains all the keys up untill the
+ current row, and not be empty.
+ I only changed the order of the user event invocation and the addition
+ to the collection.
+
+2008-07-13 Roei Erez <roeie@mainsoft.com>
+
+ * TreeView.cs: In case of multiple tree node bingings, select
+ The first one and not the last one.
+
+2008-07-10 Roei Erez <roeie@mainsoft.com>
+
+ * HyperlinkField.cs: Changed behavior of HyperLinkField bound field key
+ to be case insensitive.
+
+2008-07-03 Marek Habersack <mhabersack@novell.com>
+
+ * CheckBox.cs: do not render the language="javascript" attribute
+ in the 2.0 profile.
+
+2008-07-02 Marek Habersack <mhabersack@novell.com>
+
+ * GridView.cs: minor optimizations (removed a foreach loop,
+ replaced calls to Array.Length with a variable containing the
+ length).
+
+2008-06-30 Marek Habersack <mhabersack@novell.com>
+
+ * ObjectDataSourceView.cs, Menu.cs, DataList.cs,
+ CustomValidator.cs: hush the warnings
+
+2008-06-10 Noam Lampert <noaml@mainsoft.com>
+
+ * ListItemCollection.cs: Provide viewstate for dirty collection even if it is empty.
+
+2008-05-30 Marek Habersack <mhabersack@novell.com>
+
+ * BaseDataBoundControl.cs, ChangePassword.cs, CustomValidator.cs,
+ DataControlFieldCollection.cs, DataControlField.cs,
+ PasswordRecovery.cs, PagerSettings.cs: do not use synthetized
+ event accessors (to avoid locks).
+
+2008-05-18 Marek Habersack <mhabersack@novell.com>
+
+ * HierarchicalDataBoundControl.cs: Modified GetData method to check if
+ DataSource implements IHierarchicalEnumerable and if so constructs and
+ returns a new instance of ReadOnlyDataSourceView. This provides functional
+ compatibility with the Microsoft.NET framework. Fixes bug
+ #395209. Patch contributed by James Fitzsimons
+ <james.fitzsimons@gmail.com>, thanks!
+
+2008-05-06 Marek Habersack <mhabersack@novell.com>
+
+ * Calendar.cs: do not create dateInfo in the constructor - culture
+ might be not set yet at this point. Fixes bug #323566
+ Added a private property, DateInfo, which creates the dateInfo
+ when requested.
+
+2008-05-05 Sebastien Pouliot <sebastien@ximian.com>
+
+ * BulletedList.cs: Avoid calling ToString on a string.
+ * ButtonField.cs: Throw, not just create, the exceptions.
+ * HyperLinkField.cs: Throw, not just create, the exceptions.
+ * ImageField.cs: Throw, not just create, the exception. Avoid calling
+ ToString on a string.
+ * ListControl.cs: Avoid calling ToString on a string.
+ [All issues were found using Gendarme]
+
+2008-04-30 Marek Habersack <mhabersack@novell.com>
+
+ * SiteMapDataSource.cs: when no starting node is found, return
+ null instead of Provider.RootNode. Fixes bug #323994
+
+2008-04-24 Marek Habersack <mhabersack@novell.com>
+
+ * SqlDataSource.cs: raise the DataSourceChangedEvent when setting
+ ConnectionString, ProviderName or DataSourceMode properties only
+ when the new value differs from the old one. Fixes bug #359392
+
+2008-04-16 Marek Habersack <mhabersack@novell.com>
+
+ * ObjectDataSourceView.cs: ExecuteSelect should return an empty
+ aray when no data has been retrieved from the specified source
+ type. Fixes bug #380106
+
+2008-04-15 Marek Habersack <mhabersack@novell.com>
+
+ * MailDefinition.cs: dispose of streams the way it should
+ be done.
+
2008-04-10 Marek Habersack <mhabersack@novell.com>
* RadioButton.cs: adjust 'name' and 'value' attribute values to