2010-06-21 Marek Habersack <mhabersack@novell.com>
authorMarek Habersack <grendel@twistedcode.net>
Mon, 21 Jun 2010 18:41:51 +0000 (18:41 -0000)
committerMarek Habersack <grendel@twistedcode.net>
Mon, 21 Jun 2010 18:41:51 +0000 (18:41 -0000)
     * BaseValidator.cs, BulletedList.cs, Calendar.cs, CheckBox.cs,
     CheckBoxList.cs, DataGrid.cs, DropDownList.cs, GridView.cs,
     HyperLink.cs, ImageButton.cs, LinkButton.cs, ListBox.cs,
     ListControl.cs, Menu.cs, RadioButton.cs, RadioButtonList.cs,
     RepeatInfo.cs, Repeater.cs, TextBox.cs, TreeView.cs,
     ValidationSummary.cs, WebControl.cs: use WebControl.IsEnabled
     instead of Enabled wherever necessary.

svn path=/trunk/mcs/; revision=159280

28 files changed:
mcs/class/System.Web/System.Web.UI.WebControls/BaseValidator.cs
mcs/class/System.Web/System.Web.UI.WebControls/BulletedList.cs
mcs/class/System.Web/System.Web.UI.WebControls/Calendar.cs
mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
mcs/class/System.Web/System.Web.UI.WebControls/CheckBox.cs
mcs/class/System.Web/System.Web.UI.WebControls/CheckBoxList.cs
mcs/class/System.Web/System.Web.UI.WebControls/DataGrid.cs
mcs/class/System.Web/System.Web.UI.WebControls/DropDownList.cs
mcs/class/System.Web/System.Web.UI.WebControls/GridView.cs
mcs/class/System.Web/System.Web.UI.WebControls/HyperLink.cs
mcs/class/System.Web/System.Web.UI.WebControls/ImageButton.cs
mcs/class/System.Web/System.Web.UI.WebControls/LinkButton.cs
mcs/class/System.Web/System.Web.UI.WebControls/ListBox.cs
mcs/class/System.Web/System.Web.UI.WebControls/ListControl.cs
mcs/class/System.Web/System.Web.UI.WebControls/Menu.cs
mcs/class/System.Web/System.Web.UI.WebControls/RadioButton.cs
mcs/class/System.Web/System.Web.UI.WebControls/RadioButtonList.cs
mcs/class/System.Web/System.Web.UI.WebControls/RepeatInfo.cs
mcs/class/System.Web/System.Web.UI.WebControls/Repeater.cs
mcs/class/System.Web/System.Web.UI.WebControls/TextBox.cs
mcs/class/System.Web/System.Web.UI.WebControls/TreeView.cs
mcs/class/System.Web/System.Web.UI.WebControls/ValidationSummary.cs
mcs/class/System.Web/System.Web.UI.WebControls/WebControl.cs
mcs/class/System.Web/System.Web_standalone_test.dll.sources
mcs/class/System.Web/Test/standalone-tests/WebControlsMustUseIsEnabled_Bug571715.cs [new file with mode: 0644]
mcs/class/System.Web/Test/standalone/WebControlsMustUseIsEnabled_Bug571715/People.xml [new file with mode: 0644]
mcs/class/System.Web/Test/standalone/WebControlsMustUseIsEnabled_Bug571715/default.aspx [new file with mode: 0644]
mcs/class/System.Web/Test/standalone/WebControlsMustUseIsEnabled_Bug571715/web.config [new file with mode: 0644]

index 0d704ffa9833fb0ca1cee1a9e2145ad493a7210f..8ec6ceaef39c2f649a5268580d6b61b9bd9247de 100644 (file)
@@ -234,7 +234,7 @@ namespace System.Web.UI.WebControls {
                                if (SetFocusOnError)
                                        RegisterExpandoAttribute (ClientID, "focusOnError", "t");
 #endif
-                               if (!Enabled)
+                               if (!IsEnabled)
 #if NET_2_0
                                        RegisterExpandoAttribute (ClientID, "enabled", "False");
 #else
@@ -242,7 +242,7 @@ namespace System.Web.UI.WebControls {
 #endif
 
 #if NET_2_0
-                               if (Enabled && !IsValid) {
+                               if (IsEnabled && !IsValid) {
                                        RegisterExpandoAttribute (ClientID, "isvalid", "False");
 #else
                                if (!IsValid) {
@@ -510,7 +510,7 @@ document.getElementById('" + ClientID + @"').dispose = function() {
                override void Render (HtmlTextWriter writer)
                {
 #if NET_2_0
-                       if (!Enabled && !EnableClientScript)
+                       if (!IsEnabled && !EnableClientScript)
                                return;
 #endif
                        if (render_uplevel) {
@@ -576,7 +576,7 @@ document.getElementById('" + ClientID + @"').dispose = function() {
 #endif
                void Validate ()
                {
-                       if (Enabled && Visible)
+                       if (IsEnabled && Visible)
                                IsValid = ControlPropertiesValid () && EvaluateIsValid ();
                        else
                                IsValid = true;
index fac29e6d7e0aba04dfb5d1930650fd28ee8219c7..443fb2db3f07789ed007dec8adcb3dddd2c7c230 100644 (file)
@@ -131,9 +131,9 @@ namespace System.Web.UI.WebControls {
                                        break;
 
                                case BulletedListDisplayMode.HyperLink:
-                                       if (Enabled && item.Enabled) {
+                                       if (IsEnabled && item.Enabled) {
                                                writer.AddAttribute (HtmlTextWriterAttribute.Href, item.Value);
-                                               if (Target != "")
+                                               if (Target.Length > 0)
                                                        writer.AddAttribute(HtmlTextWriterAttribute.Target, this.Target);
                                                
                                        }
@@ -146,7 +146,7 @@ namespace System.Web.UI.WebControls {
                                        break;
 
                                case BulletedListDisplayMode.LinkButton:
-                                       if (Enabled && item.Enabled)
+                                       if (IsEnabled && item.Enabled)
                                                writer.AddAttribute (HtmlTextWriterAttribute.Href, Page.ClientScript.GetPostBackEventReference (GetPostBackOptions (index.ToString (Helpers.InvariantCulture)), true));
                                        else
                                                writer.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled", false);
@@ -301,7 +301,7 @@ namespace System.Web.UI.WebControls {
                [DefaultValueAttribute ("")]
                [TypeConverter (typeof (TargetConverter))]
                public virtual string Target {
-                       get { return ViewState.GetString ("Target", ""); }
+                       get { return ViewState.GetString ("Target", String.Empty); }
                        set { ViewState ["Target"] = value; }
                }
 
index 15eb1fb1ec041b4c07c3ddae16afb4b94c6985af..3f799e53446764e9331422549efebbc14066dcab 100644 (file)
@@ -818,17 +818,18 @@ namespace System.Web.UI.WebControls {
                        writer.RenderBeginTag (HtmlTextWriterTag.Table);
 
 #if NET_2_0
-                       if (Caption != "")
+                       if (!String.IsNullOrEmpty (Caption))
                                WriteCaption (writer);
 #endif
-
+                       bool enabled = IsEnabled;
+                       
                        if (ShowTitle)
-                               WriteTitle (writer);
-
+                               WriteTitle (writer, enabled);
+                       
                        if (ShowDayHeader)
-                               WriteDayHeader (writer);
+                               WriteDayHeader (writer, enabled);
 
-                       WriteDays (writer);
+                       WriteDays (writer, enabled);
 
                        writer.RenderEndTag ();
                }
@@ -914,7 +915,7 @@ namespace System.Web.UI.WebControls {
                //
                // Private methods
                //
-               void WriteDayHeader (HtmlTextWriter writer)
+               void WriteDayHeader (HtmlTextWriter writer, bool enabled)
                {
                        int i, first;
                        string dayName;
@@ -942,7 +943,7 @@ namespace System.Web.UI.WebControls {
                                        int days =  DateTime.DaysInMonth (DisplayDate.Year, DisplayDate.Month);
 
                                        selector.RenderBeginTag (writer);
-                                       writer.Write (BuildLink ("R" + GetDaysFromZenith (date) + days, SelectMonthText, DayHeaderStyle.ForeColor, Enabled));
+                                       writer.Write (BuildLink ("R" + GetDaysFromZenith (date) + days, SelectMonthText, DayHeaderStyle.ForeColor, enabled));
                                        selector.RenderEndTag (writer);
                                }
                        }
@@ -1003,7 +1004,7 @@ namespace System.Web.UI.WebControls {
                        writer.RenderEndTag ();
                }
 
-               void WriteDay (DateTime date, HtmlTextWriter writer)
+               void WriteDay (DateTime date, HtmlTextWriter writer, bool enabled)
                {                       
                        TableItemStyle style = new TableItemStyle ();
                        TableCell cell = new TableCell ();
@@ -1039,7 +1040,7 @@ namespace System.Web.UI.WebControls {
                                style.CopyFrom (otherMonthDayStyle);
                        }
 
-                       if (day.IsSelected && Enabled) {
+                       if (enabled && day.IsSelected) {
                                style.BackColor = Color.Silver;
                                style.ForeColor = Color.White;
                                if (selectedDayStyle != null && !selectedDayStyle.IsEmpty) {
@@ -1050,12 +1051,12 @@ namespace System.Web.UI.WebControls {
                        cell.ApplyStyle (style);
 
                        lit.Text = BuildLink (GetDaysFromZenith (date).ToString (), day.DayNumberText,
-                                             cell.ForeColor, day.IsSelectable && Enabled);
+                                             cell.ForeColor, enabled && day.IsSelectable);
 
                        cell.RenderControl (writer);
                }
 
-               void WriteDays (HtmlTextWriter writer)
+               void WriteDays (HtmlTextWriter writer, bool enabled)
                {
                        DateTime date = new DateTime (DisplayDate.Year, DisplayDate.Month, 1); // first date
                        DateTime lastDate;
@@ -1087,12 +1088,12 @@ namespace System.Web.UI.WebControls {
                                        }
 
                                        selectorCell.RenderBeginTag (writer);
-                                       writer.Write (BuildLink ("R" + GetDaysFromZenith (date) + "07", SelectWeekText, selectorCell.ForeColor, Enabled));
+                                       writer.Write (BuildLink ("R" + GetDaysFromZenith (date) + "07", SelectWeekText, selectorCell.ForeColor, enabled));
                                        selectorCell.RenderEndTag (writer);
                                }
 
                                for (int i = 0; i < daysInAWeek; i++) {
-                                       WriteDay (date, writer);
+                                       WriteDay (date, writer, enabled);
                                        date = GetGlobalCalendar().AddDays (date, 1);
                                }
 
@@ -1156,7 +1157,7 @@ namespace System.Web.UI.WebControls {
                }
 #endif
 
-               void WriteTitle (HtmlTextWriter writer)
+               void WriteTitle (HtmlTextWriter writer, bool enabled)
                {
                        TableCell cellNextPrev = null;
                        TableCell titleCell = new TableCell ();
@@ -1191,7 +1192,7 @@ namespace System.Web.UI.WebControls {
                                DateTime date = GetGlobalCalendar().AddMonths (DisplayDate, - 1);
                                date = GetGlobalCalendar ().AddDays (date, -date.Day + 1);
                                cellNextPrev.RenderBeginTag (writer);
-                               writer.Write (BuildLink ("V" + GetDaysFromZenith (date), GetNextPrevFormatText (date, false), cellNextPrev.ForeColor, Enabled));
+                               writer.Write (BuildLink ("V" + GetDaysFromZenith (date), GetNextPrevFormatText (date, false), cellNextPrev.ForeColor, enabled));
                                cellNextPrev.RenderEndTag (writer);
                        }
 
@@ -1220,7 +1221,7 @@ namespace System.Web.UI.WebControls {
 
                                cellNextPrev.HorizontalAlign = HorizontalAlign.Right;
                                cellNextPrev.RenderBeginTag (writer);
-                               writer.Write (BuildLink ("V" + GetDaysFromZenith (date), GetNextPrevFormatText (date, true), cellNextPrev.ForeColor, Enabled));
+                               writer.Write (BuildLink ("V" + GetDaysFromZenith (date), GetNextPrevFormatText (date, true), cellNextPrev.ForeColor, enabled));
                                cellNextPrev.RenderEndTag (writer);
                        }
 
index ed03efa99da8fff9ef04cb44c1e8858abd0862c1..a44a6d0cff83a458ef2091736f1e82ee7840bee8 100644 (file)
@@ -1,3 +1,13 @@
+2010-06-21  Marek Habersack  <mhabersack@novell.com>
+
+       * BaseValidator.cs, BulletedList.cs, Calendar.cs, CheckBox.cs,
+       CheckBoxList.cs, DataGrid.cs, DropDownList.cs, GridView.cs,
+       HyperLink.cs, ImageButton.cs, LinkButton.cs, ListBox.cs,
+       ListControl.cs, Menu.cs, RadioButton.cs, RadioButtonList.cs,
+       RepeatInfo.cs, Repeater.cs, TextBox.cs, TreeView.cs,
+       ValidationSummary.cs, WebControl.cs: use WebControl.IsEnabled
+       instead of Enabled wherever necessary.
+
 2010-06-16  Marek Habersack  <mhabersack@novell.com>
 
        * FormView.cs: row values must be retrieved with inclusion of
index 733471f379e8325e9494d65bbb05eaca478f12ee..78cffc45e72ee581ba95a8d68ffb5afe00bb4878 100644 (file)
@@ -299,15 +299,13 @@ namespace System.Web.UI.WebControls {
                {
                        base.OnPreRender (e);
                        Page page = Page;
-                       bool enabled = Enabled;
                        
-                       if (page != null && enabled) {
+                       if (page != null && IsEnabled) {
                                page.RegisterRequiresPostBack (this);
-                       }
 #if NET_2_0
-                       if (Page != null && enabled)
                                page.RegisterEnabledControl (this);
 #endif
+                       }
                }
 
                static bool IsInputOrCommonAttr (string attname)
@@ -393,7 +391,8 @@ namespace System.Web.UI.WebControls {
                                ControlStyle.AddAttributesToRender (w, this);
                        }
 
-                       if (!Enabled) {
+                       bool enabled = IsEnabled;
+                       if (!enabled) {
                                w.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled", false);
                                need_span = true;
                        }
@@ -417,26 +416,26 @@ namespace System.Web.UI.WebControls {
 
                        TextAlign align = TextAlign;
                        if (align == TextAlign.Right) {
-                               RenderInput (w);
+                               RenderInput (w, enabled);
                                RenderLabel (w);
                        } else {
                                RenderLabel (w);
-                               RenderInput (w);
+                               RenderInput (w, enabled);
                        }
 
                        if (need_span)
                                w.RenderEndTag ();
                }
 
-               void RenderInput (HtmlTextWriter w) {
-
+               void RenderInput (HtmlTextWriter w, bool enabled)
+               {
                        if (ClientID != null && ClientID.Length > 0)
                                w.AddAttribute (HtmlTextWriterAttribute.Id, ClientID);
                        w.AddAttribute (HtmlTextWriterAttribute.Type, render_type);
                        string nameAttr = NameAttribute;
                        if (nameAttr != null && nameAttr.Length > 0)
                                w.AddAttribute (HtmlTextWriterAttribute.Name, nameAttr);
-                       InternalAddAttributesToRender (w);
+                       InternalAddAttributesToRender (w, enabled);
 #if NET_2_0
                        AddAttributesToRender (w);
                        if (inputAttributes != null)
@@ -489,7 +488,7 @@ namespace System.Web.UI.WebControls {
 #endif
                bool LoadPostData (string postDataKey, NameValueCollection postCollection)
                {
-                       if (!Enabled)
+                       if (!IsEnabled)
                                return false;
 
                        string postedValue = postCollection[postDataKey];
@@ -547,9 +546,9 @@ namespace System.Web.UI.WebControls {
                }
 #endif
 
-               internal virtual void InternalAddAttributesToRender (HtmlTextWriter w)
+               internal virtual void InternalAddAttributesToRender (HtmlTextWriter w, bool enabled)
                {
-                       if (!Enabled)
+                       if (!enabled)
                                w.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled", false);
                }
        }
index f2d419e55a9f36162ffedf0b364bb9b96bf570f9..c36e159aa2429ef1ec626dd36d4dd389d2929585 100644 (file)
@@ -361,7 +361,7 @@ namespace System.Web.UI.WebControls {
                        check_box.AutoPostBack = AutoPostBack;
                        check_box.Checked = item.Selected;
                        check_box.TextAlign = TextAlign;
-                       if (!Enabled)
+                       if (!IsEnabled)
                                check_box.Enabled = false;
                        else
                                check_box.Enabled = item.Enabled;
index ec072ab0a3325b7a42ea5982d0c69a6c35b69968..7be47cb9bc42a6f14b58cfbcc9b1d4136c0568f0 100644 (file)
@@ -1078,7 +1078,7 @@ namespace System.Web.UI.WebControls {
 
                        rt.Caption = Caption;
                        rt.CaptionAlign = CaptionAlign;
-                       rt.Enabled = Enabled;
+                       rt.Enabled = IsEnabled;
 
                        bool top_pager = true;
                        foreach (DataGridItem item in rt.Rows) {
index 0db301ac787047631edc7ec55450d216d646bb69..4e08f4867b28435037500f2b1901a13c98b0177a 100644 (file)
@@ -128,7 +128,7 @@ namespace System.Web.UI.WebControls {
                        if (!String.IsNullOrEmpty (UniqueID))
                                writer.AddAttribute(HtmlTextWriterAttribute.Name, this.UniqueID, true);
 
-                       if (!Enabled && SelectedIndex == -1)
+                       if (!IsEnabled && SelectedIndex == -1)
                                SelectedIndex = 1;
 #else
                        writer.AddAttribute(HtmlTextWriterAttribute.Name, this.UniqueID, true);
index 26ace72c5ce04e6ab91bba0de75cd5e2295ab890..fdaaf55ee28115d18db87d664d315a22f5f9e6a4 100644 (file)
@@ -1376,8 +1376,7 @@ namespace System.Web.UI.WebControls
                                        }
                                }
                                return 0;
-                       }
-                       else {
+                       } else {
                                GridViewRow footerRow = CreateRow (-1, -1, DataControlRowType.Footer, DataControlRowState.Normal);
                                InitializeRow (footerRow, fields);
                                OnRowCreated (new GridViewRowEventArgs (footerRow));
index b82d2b14ad7b802a92041c92d8860ecd9e7b3989..e2e0d9448bb02bea2b9cc52db3dc2009a0b1a98c 100644 (file)
@@ -59,7 +59,7 @@ namespace System.Web.UI.WebControls {
 #if NET_2_0
                        AddDisplayStyleAttribute (w);
 #endif
-                       if (!Enabled)
+                       if (!IsEnabled)
                                return;
                        // add attributes - only if they're not empty
                        string t = Target;
index 2fe68688718f619d9573b9a6ed6393753c8838ea..3d766433aca05cf5f9be05df5e161672c7bd56af 100644 (file)
@@ -371,8 +371,9 @@ namespace System.Web.UI.WebControls {
 #endif         
                override void OnPreRender (EventArgs e)
                {
-                       if (Page != null && Enabled)
-                               Page.RegisterRequiresPostBack (this);
+                       Page page = Page;
+                       if (page != null && IsEnabled)
+                               page.RegisterRequiresPostBack (this);
                }
 
                [WebSysDescription ("")]
index d6ce63a75e3d3077783a4809ce454d1ce47bda2a..1b5e21bf3119b62e04705f5ad0a99d590e7e204b 100644 (file)
@@ -60,9 +60,11 @@ namespace System.Web.UI.WebControls {
        
                protected override void AddAttributesToRender (HtmlTextWriter w)
                {
-                       if (Page != null)
-                               Page.VerifyRenderingInServerForm (this);
+                       Page page = Page;
+                       if (page != null)
+                               page.VerifyRenderingInServerForm (this);
 
+                       bool enabled = IsEnabled;
 #if NET_2_0
                        string onclick = OnClientClick;
                        onclick = ClientScriptManager.EnsureEndsWithSemicolon (onclick);
@@ -73,26 +75,26 @@ namespace System.Web.UI.WebControls {
 
                        if (onclick.Length > 0)
                                w.AddAttribute (HtmlTextWriterAttribute.Onclick, onclick);
-
-                       if (Enabled && Page != null) {
+                       
+                       if (enabled && page != null) {
                                PostBackOptions options = GetPostBackOptions ();
-                               string href = Page.ClientScript.GetPostBackEventReference (options, true);
+                               string href = page.ClientScript.GetPostBackEventReference (options, true);
                                w.AddAttribute (HtmlTextWriterAttribute.Href, href);
                        }
                        base.AddAttributesToRender (w);
                        AddDisplayStyleAttribute (w);
 #else
                        base.AddAttributesToRender (w);
-                       if (Page == null || !Enabled)
+                       if (page == null || !enabled)
                                return;
                        
-                       if (CausesValidation && Page.AreValidatorsUplevel ()) {
-                               ClientScriptManager csm = new ClientScriptManager (Page);
+                       if (CausesValidation && page.AreValidatorsUplevel ()) {
+                               ClientScriptManager csm = new ClientScriptManager (page);
                                w.AddAttribute (HtmlTextWriterAttribute.Href,
                                                String.Concat ("javascript:{if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); ",
                                                               csm.GetPostBackEventReference (this, String.Empty), ";}"));
                        } else {
-                               w.AddAttribute (HtmlTextWriterAttribute.Href, Page.ClientScript.GetPostBackClientHyperlink (this, ""));
+                               w.AddAttribute (HtmlTextWriterAttribute.Href, page.ClientScript.GetPostBackClientHyperlink (this, String.Empty));
                        }
 #endif
                }
index 2586a1ec204884683e9cd2d9dc9a8055c4c6d0a9..da401fc5d5cc0ff347220edd762e4c7cca8c504e 100644 (file)
@@ -208,8 +208,9 @@ namespace System.Web.UI.WebControls {
                override void OnPreRender (EventArgs e)
                {
                        base.OnPreRender (e);
-                       if (Page != null && Enabled)
-                               Page.RegisterRequiresPostBack (this);
+                       Page page = Page;
+                       if (page != null && IsEnabled)
+                               page.RegisterRequiresPostBack (this);
                }
 
 #if NET_2_0
index aad10b02b283b031ae3f2dd0eba8c88db02f6f58..b3800b7a9058cd16d44678e2602b1b02991a9658 100644 (file)
@@ -408,8 +408,9 @@ namespace System.Web.UI.WebControls {
                {
                        base.OnPreRender (e);
 #if NET_2_0
-                       if (Page != null && Enabled)
-                               Page.RegisterEnabledControl (this);
+                       Page page = Page;
+                       if (page != null && IsEnabled)
+                               page.RegisterEnabledControl (this);
 #endif
                }
 
index 6973243bcfc4754d0e67bbaea65d468a0e71cc24..53292cc7cb17e0cd545f6cf5b36d000cfcb87ddf 100644 (file)
@@ -903,7 +903,7 @@ namespace System.Web.UI.WebControls
                protected internal virtual void RaisePostBackEvent (string eventArgument)
                {
                        ValidateEvent (UniqueID, eventArgument);
-                       if (!Enabled)
+                       if (!IsEnabled)
                                return;
 
                        EnsureChildControls();
index 2f5ceaf2c1770f0ae8f58f184e8f212566d8cbc1..85ea99d49c61b2775ad0f949cd15665c77927fea 100644 (file)
@@ -105,14 +105,14 @@ namespace System.Web.UI.WebControls {
                        }
                }
 
-               internal override void InternalAddAttributesToRender (HtmlTextWriter w
+               internal override void InternalAddAttributesToRender (HtmlTextWriter w, bool enabled)
                {
 #if NET_2_0
                        Page page = Page;
                        if (page != null)
                                page.ClientScript.RegisterForEventValidation (NameAttribute, ValueAttribute);
 #endif
-                       base.InternalAddAttributesToRender (w);
+                       base.InternalAddAttributesToRender (w, enabled);
                        w.AddAttribute (HtmlTextWriterAttribute.Value, ValueAttribute);
                }
 
index b8ee5afaf284190c264f1d28db5df74f5f38a5f6..df98ac8028f576114fcc5797f7fb26dfbc53726d 100644 (file)
@@ -255,7 +255,7 @@ namespace System.Web.UI.WebControls {
                        radio.Checked = item.Selected;
                        radio.ValueAttribute = item.Value;
                        radio.AutoPostBack = AutoPostBack;
-                       radio.Enabled = Enabled;
+                       radio.Enabled = IsEnabled;
                        radio.TabIndex = tabIndex;
 #if NET_2_0
                        radio.ValidationGroup = ValidationGroup;
index e86d9bbda33e5da8eefd6a862ada6283d904f1cd..b1e275a821823fd370d41a45cd289f21ed9c6e73 100644 (file)
@@ -414,7 +414,7 @@ namespace System.Web.UI.WebControls {
                        c.ID = wc.ClientID;
                        c.CopyBaseAttributes (wc);
                        c.ApplyStyle (s);
-                       c.Enabled = wc.Enabled;
+                       c.Enabled = wc.IsEnabled;
                        c.RenderBeginTag (w);
                }
                
index e99f1ede0d1897fa60fcb229011ebde80b1f584c..499143e7e6ee460ad25cac4a17c40dc40178664d 100644 (file)
@@ -533,10 +533,11 @@ namespace System.Web.UI.WebControls {
                protected internal override void OnInit (EventArgs e)
                {
                        base.OnInit (e);
-                       if (Page != null) {
-                               Page.PreLoad += new EventHandler (OnPagePreLoad);
+                       Page page = Page;
+                       if (page != null) {
+                               page.PreLoad += new EventHandler (OnPagePreLoad);
 
-                               if (!IsViewStateEnabled && Page.IsPostBack)
+                               if (!IsViewStateEnabled && page.IsPostBack)
                                        RequiresDataBinding = true;
                        }
                }
@@ -556,8 +557,9 @@ namespace System.Web.UI.WebControls {
 
                void Initialize () 
                {
-                       if (Page != null) {
-                               if (!Page.IsPostBack || (IsViewStateEnabled && (ViewState ["Items"] == null)))
+                       Page page = Page;
+                       if (page != null) {
+                               if (!page.IsPostBack || (IsViewStateEnabled && (ViewState ["Items"] == null)))
                                        RequiresDataBinding = true;
                        }
                        
index d072f9a42c8931e902523f238c9a61a0cab632ec..f1b447e85d0618d435caa780671912a37fe2eb5f 100644 (file)
@@ -195,7 +195,7 @@ namespace System.Web.UI.WebControls {
                        }
 
                        Page page = Page;
-                       if (page != null && Enabled)
+                       if (page != null && IsEnabled)
                                page.RegisterEnabledControl (this);
 #endif
                }
index 1716ee8709def23989c4045eda8fd6bcb8e18599..08d3b07d8e5664e149a82b63ccfbff8fb8f79a2f 100644 (file)
@@ -1086,13 +1086,14 @@ namespace System.Web.UI.WebControls
                {
                        base.OnPreRender (e);
 
-                       if (Page != null) {
-                               if (Enabled)
-                                       Page.RegisterRequiresPostBack (this);
+                       Page page = Page;
+                       if (page != null) {
+                               if (IsEnabled)
+                                       page.RegisterRequiresPostBack (this);
                        
-                               if (EnableClientScript && !Page.ClientScript.IsClientScriptIncludeRegistered (typeof(TreeView), "TreeView.js")) {
-                                       string url = Page.ClientScript.GetWebResourceUrl (typeof(TreeView), "TreeView.js");
-                                       Page.ClientScript.RegisterClientScriptInclude (typeof(TreeView), "TreeView.js", url);
+                               if (EnableClientScript && !page.ClientScript.IsClientScriptIncludeRegistered (typeof(TreeView), "TreeView.js")) {
+                                       string url = page.ClientScript.GetWebResourceUrl (typeof(TreeView), "TreeView.js");
+                                       page.ClientScript.RegisterClientScriptInclude (typeof(TreeView), "TreeView.js", url);
                                }
                        }
                        
@@ -1117,11 +1118,11 @@ namespace System.Web.UI.WebControls
                                                             ClientScriptManager.GetScriptLiteral (GetNodeImageUrl ("noexpand", imageStyle)));
                        }
 
-                       if (Page != null) {
+                       if (page != null) {
                                script.AppendFormat (_OnPreRender_Script_PopulateCallback,
                                                     ctree,
-                                                    Page.theForm,
-                                                    Page.WebFormScriptReference);
+                                                    page.theForm,
+                                                    page.WebFormScriptReference);
                                
                                                     // Page.ClientScript.GetCallbackEventReference (
                                                     //              "this.uid", "nodeId",
@@ -1134,23 +1135,24 @@ namespace System.Web.UI.WebControls
                                                     ClientScriptManager.GetScriptLiteral (GetNodeImageToolTip (true, null)),
                                                     ClientScriptManager.GetScriptLiteral (GetNodeImageToolTip (false, null)));
                                
-                               if (!Page.IsPostBack)
+                               if (!page.IsPostBack)
                                        SetNodesExpandedToDepthRecursive (Nodes);
 
-                               if (EnableClientScript) {
-                                       Page.ClientScript.RegisterHiddenField (ClientID + "_ExpandStates", GetExpandStates ());
+                               bool enableClientScript = EnableClientScript;
+                               if (enableClientScript) {
+                                       page.ClientScript.RegisterHiddenField (ClientID + "_ExpandStates", GetExpandStates ());
 
                                        // Make sure the basic script infrastructure is rendered
-                                       Page.ClientScript.RegisterWebFormClientScript ();
+                                       page.ClientScript.RegisterWebFormClientScript ();
                                }
 
-                               if (EnableClientScript && PopulateNodesFromClient)
-                                       Page.ClientScript.RegisterHiddenField (ClientID + "_PopulatedStates", "|");
+                               if (enableClientScript && PopulateNodesFromClient)
+                                       page.ClientScript.RegisterHiddenField (ClientID + "_PopulatedStates", "|");
 
                                EnsureStylesPrepared ();
 
                                if (hoverNodeStyle != null) {
-                                       if (Page.Header == null)
+                                       if (page.Header == null)
                                                throw new InvalidOperationException ("Using TreeView.HoverNodeStyle requires Page.Header to be non-null (e.g. <head runat=\"server\" />).");
                                        RegisterStyle (HoverNodeStyle, HoverNodeLinkStyle);
                                        script.AppendFormat (_OnPreRender_Script_HoverStyle,
@@ -1159,7 +1161,7 @@ namespace System.Web.UI.WebControls
                                                             ClientScriptManager.GetScriptLiteral (HoverNodeLinkStyle.RegisteredCssClass));                                     
                                }
                                
-                               Page.ClientScript.RegisterStartupScript (typeof(TreeView), this.UniqueID, script.ToString (), true);
+                               page.ClientScript.RegisterStartupScript (typeof(TreeView), this.UniqueID, script.ToString (), true);
                                script = null;
                        }
                }
index 10d084495f7338f73e39a30d41e89080153896af..7b86d1347a66cb0ac7cb0b0c8e0ab2150c2fb597 100644 (file)
@@ -242,7 +242,7 @@ namespace System.Web.UI.WebControls {
 #endif         
                override void Render(HtmlTextWriter writer) {
 #if NET_2_0
-                       if (!Enabled)
+                       if (!IsEnabled)
                                return;
 #endif
                        ValidatorCollection     validators;
index 0ea00fac0a59e8b7c27a75a790ea253e38835a8e..fc6f2b8782da261a2df2030327def58cc04b3cf8 100644 (file)
@@ -408,9 +408,12 @@ namespace System.Web.UI.WebControls {
                }
 
 #if NET_2_0
-               protected internal bool IsEnabled 
+               protected
+#endif
+               internal bool IsEnabled 
                {
                        get {
+#if NET_2_0
                                WebControl wc = this;
                                while (wc != null) {
                                        if (!wc.Enabled)
@@ -418,10 +421,11 @@ namespace System.Web.UI.WebControls {
                                        wc = wc.Parent as WebControl;
                                }
                                return true;
+#else
+                               return Enabled;
+#endif
                        }
                }
-#endif         
-               
 
                public void ApplyStyle (Style s) 
                {
@@ -519,7 +523,7 @@ namespace System.Web.UI.WebControls {
                        if (AccessKey != string.Empty)
                                writer.AddAttribute (HtmlTextWriterAttribute.Accesskey, AccessKey);
 
-                       if (!enabled)
+                       if (!IsEnabled)
                                writer.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled", false);
 
                        if (ToolTip != string.Empty)
index 8cf8191993175d9834c31e8843af9ef8f414da16..94df3345885fd967e0c3948e0a6e5b18346c8b53 100644 (file)
@@ -13,3 +13,4 @@ Test/standalone-tests/PageMetaAttributes.cs
 Test/standalone-tests/FormViewUpdateParameters_Bug607722.cs
 Test/standalone-tests/RootBuilderChildControlTypes_Bug603541.cs
 Test/standalone-tests/MD5PasswordAuth_Bug601727.cs
+Test/standalone-tests/WebControlsMustUseIsEnabled_Bug571715.cs
diff --git a/mcs/class/System.Web/Test/standalone-tests/WebControlsMustUseIsEnabled_Bug571715.cs b/mcs/class/System.Web/Test/standalone-tests/WebControlsMustUseIsEnabled_Bug571715.cs
new file mode 100644 (file)
index 0000000..7aac35d
--- /dev/null
@@ -0,0 +1,65 @@
+//
+// Authors:
+//   Marek Habersack (mhabersack@novell.com)
+//
+// (C) 2010 Novell, Inc http://novell.com/
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Web;
+using System.Web.Hosting;
+
+using StandAloneRunnerSupport;
+using StandAloneTests;
+
+using NUnit.Framework;
+
+namespace StandAloneTests.WebControlsMustUseIsEnabled_Bug571715
+{
+       [TestCase ("WebControlsMustUseIsEnabled_Bug571715", "WebControl descendants must use IsEnabled instead of Enabled (Bug #571715)")]
+       public sealed class Test_01 : ITestCase
+       {
+               public string PhysicalPath {
+                       get { return Path.Combine (Consts.BasePhysicalDir, "WebControlsMustUseIsEnabled_Bug571715"); }
+               }
+               
+               public string VirtualPath  {
+                       get { return "/"; }
+               }
+
+               public bool SetUp (List <TestRunItem> runItems)
+               {
+                       runItems.Add (new TestRunItem ("default.aspx", Default_Aspx));
+                       
+                       return true;
+               }
+
+               void Default_Aspx (string result, TestRunItem runItem)
+               {
+                       string originalHtml = "<div>\r\n        <table id=\"GridView1\" cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n                   <tr>\r\n                                <th scope=\"col\">ID</th><th scope=\"col\">FULLNAME</th><th scope=\"col\">&nbsp;</th>\r\n                       </tr><tr>\r\n                           <td>1</td><td>Sheryl Hunter</td><td align=\"left\" style=\"width:60px;\"><input type=\"submit\" name=\"GridView1$ctl02$DeleteBtn\" value=\"Delete\" id=\"GridView1_ctl02_DeleteBtn\" /></td>\r\n                        </tr><tr>\r\n                           <td>2</td><td>Dean Straight</td><td disabled=\"disabled\" align=\"left\" style=\"width:60px;\"><input type=\"submit\" name=\"GridView1$ctl03$DeleteBtn\" value=\"Delete\" id=\"GridView1_ctl03_DeleteBtn\" disabled=\"disabled\" /></td>\r\n                    </tr><tr>\r\n                           <td>3</td><td>Marjorie Green</td><td align=\"left\" style=\"width:60px;\"><input type=\"submit\" name=\"GridView1$ctl04$DeleteBtn\" value=\"Delete\" id=\"GridView1_ctl04_DeleteBtn\" /></td>\r\n                       </tr>\r\n               </table>\r\n    </div>";
+                       Helpers.ExtractAndCompareCodeFromHtml (result, originalHtml, "#A1");
+               }
+       }
+}
diff --git a/mcs/class/System.Web/Test/standalone/WebControlsMustUseIsEnabled_Bug571715/People.xml b/mcs/class/System.Web/Test/standalone/WebControlsMustUseIsEnabled_Bug571715/People.xml
new file mode 100644 (file)
index 0000000..5033f39
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<people>
+    <person ID="1" FULLNAME="Sheryl Hunter"/>
+    <person ID="2" FULLNAME="Dean Straight"/>
+    <person ID="3" FULLNAME="Marjorie Green"/>
+</people>
+
diff --git a/mcs/class/System.Web/Test/standalone/WebControlsMustUseIsEnabled_Bug571715/default.aspx b/mcs/class/System.Web/Test/standalone/WebControlsMustUseIsEnabled_Bug571715/default.aspx
new file mode 100644 (file)
index 0000000..8a8e2b3
--- /dev/null
@@ -0,0 +1,29 @@
+<%@ Page Language="C#" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<script runat="server">
+       protected void GridView1_RowDataBound (object sender, GridViewRowEventArgs e)
+       {
+               if (e.Row.RowType == DataControlRowType.DataRow && e.Row.Cells [0].Text == "2")
+                       e.Row.Cells [2].Enabled = false;
+       }
+</script>
+<html xmlns="http://www.w3.org/1999/xhtml" >
+<head runat="server">
+       <title>Bug #571715</title>
+</head>
+<body>
+<form id="form1" runat="server">
+       <%= AppDomain.CurrentDomain.GetData ("BEGIN_CODE_MARKER") %><asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="XmlDataSource1" OnRowDataBound="GridView1_RowDataBound">
+               <Columns>
+                       <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
+                       <asp:BoundField DataField="FULLNAME" HeaderText="FULLNAME" SortExpression="FULLNAME" />
+                       <asp:TemplateField>
+                               <ItemTemplate><asp:Button CommandName="Delete" CommandArgument="<%# Container.DataItemIndex %>" Text="Delete" ID="DeleteBtn" runat="server" CausesValidation="False" /></ItemTemplate>
+                               <ItemStyle HorizontalAlign="Left" Width="60px" />
+                       </asp:TemplateField>
+               </Columns>
+       </asp:GridView><%= AppDomain.CurrentDomain.GetData ("END_CODE_MARKER") %>
+       <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="People.xml"></asp:XmlDataSource>
+</form>
+</body>
+</html>
diff --git a/mcs/class/System.Web/Test/standalone/WebControlsMustUseIsEnabled_Bug571715/web.config b/mcs/class/System.Web/Test/standalone/WebControlsMustUseIsEnabled_Bug571715/web.config
new file mode 100644 (file)
index 0000000..7f3d96b
--- /dev/null
@@ -0,0 +1,76 @@
+<?xml version="1.0"?>
+<!-- 
+    Note: As an alternative to hand editing this file you can use the 
+    web admin tool to configure settings for your application. Use
+    the Website->Asp.Net Configuration option in Visual Studio.
+    A full list of settings and comments can be found in 
+    machine.config.comments usually located in 
+    \Windows\Microsoft.Net\Framework\v2.x\Config 
+-->
+<configuration>
+       <appSettings/>
+       <connectionStrings/>
+       <system.web>
+               <!-- 
+            Set compilation debug="true" to insert debugging 
+            symbols into the compiled page. Because this 
+            affects performance, set this value to true only 
+            during development.
+
+            Visual Basic options:
+            Set strict="true" to disallow all data type conversions 
+            where data loss can occur. 
+            Set explicit="true" to force declaration of all variables.
+        -->
+               <compilation debug="false" strict="false" explicit="true">
+                       <assemblies>
+                               <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></assemblies></compilation>
+               <httpHandlers>
+                       <remove path="*.asmx" verb="*"/>
+                       <add path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
+                       <add path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
+                       <add path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
+               </httpHandlers>
+               <pages>
+                       <namespaces>
+                               <clear/>
+                               <add namespace="System"/>
+                               <add namespace="System.Collections"/>
+                               <add namespace="System.Collections.Specialized"/>
+                               <add namespace="System.Configuration"/>
+                               <add namespace="System.Text"/>
+                               <add namespace="System.Text.RegularExpressions"/>
+                               <add namespace="System.Web"/>
+                               <add namespace="System.Web.Caching"/>
+                               <add namespace="System.Web.SessionState"/>
+                               <add namespace="System.Web.Security"/>
+                               <add namespace="System.Web.Profile"/>
+                               <add namespace="System.Web.UI"/>
+                               <add namespace="System.Web.UI.WebControls"/>
+                               <add namespace="System.Web.UI.WebControls.WebParts"/>
+                               <add namespace="System.Web.UI.HtmlControls"/>
+                       </namespaces>
+                       <controls>
+                               <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
+                       </controls>
+               </pages>
+               <!--
+            The <authentication> section enables configuration 
+            of the security authentication mode used by 
+            ASP.NET to identify an incoming user. 
+        -->
+               <authentication mode="Windows"/>
+               <!--
+            The <customErrors> section enables configuration 
+            of what to do if/when an unhandled error occurs 
+            during the execution of a request. Specifically, 
+            it enables developers to configure html error pages 
+            to be displayed in place of a error stack trace.
+
+        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
+            <error statusCode="403" redirect="NoAccess.htm" />
+            <error statusCode="404" redirect="FileNotFound.htm" />
+        </customErrors>
+        -->
+       </system.web>
+</configuration>