2010-01-15 Marek Habersack <mhabersack@novell.com>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / ChangeLog
index 440a22c0c4bd3eff4cc69f7529da88506df1e33d..37fac83ddfe8de11d714282cf8caa496711cb1a9 100644 (file)
@@ -1,3 +1,464 @@
+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