* DataList.cs: fixed RepeatColumns property, added value validation
authorVladimir Krasnov <krasnov@mono-cvs.ximian.com>
Wed, 22 Mar 2006 12:50:17 +0000 (12:50 -0000)
committerVladimir Krasnov <krasnov@mono-cvs.ximian.com>
Wed, 22 Mar 2006 12:50:17 +0000 (12:50 -0000)
in PrepareControlHierarchy method fixed style applying for AlternatingItem, EditItem and Separator item
fixed RenderContents method, if no items exist, no nned to render emty table strructure.

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

mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
mcs/class/System.Web/System.Web.UI.WebControls/DataList.cs

index 7400bcd48268638bf26f84275a313d1aa2fb84c3..09179bf4848e8a8c666ae95f3130f0a8b5990588 100644 (file)
@@ -1,3 +1,11 @@
+2006-03-22  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * DataList.cs: fixed RepeatColumns property, added value validation
+       in PrepareControlHierarchy method fixed style applying for
+       AlternatingItem, EditItem and Separator item
+       fixed RenderContents method, if no items exist, no nned to
+       render emty table strructure.
+
 2006-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
 
        * CompareValidator.cs: when searching for the control to compare, use
index 4a1bf9bb92b766be70bc9e13a72b181a7b74d890..4767efdc6a58db9060aa6ce8246624e5479ff9c5 100644 (file)
@@ -310,7 +310,12 @@ namespace System.Web.UI.WebControls {
                                object o = ViewState ["RepeatColumns"];
                                return (o == null) ? 0 : (int) o;
                        }
-                       set { ViewState ["RepeatColumns"] = value; }
+                       set { 
+                               if (value < 0)
+                                       throw new ArgumentOutOfRangeException ("value", "RepeatColumns value has to be 0 for 'not set' or > 0.");
+                               
+                               ViewState ["RepeatColumns"] = value; 
+                       }
                }
 
 #if ONLY_1_1
@@ -771,7 +776,7 @@ namespace System.Web.UI.WebControls {
                                case ListItemType.AlternatingItem:
                                        if (alt == null) {
                                                if (alternatingItemStyle != null) {
-                                                       alt = new Style ();
+                                                       alt = new TableItemStyle ();
                                                        alt.CopyFrom (itemStyle);
                                                        alt.CopyFrom (alternatingItemStyle);
                                                } else {
@@ -783,8 +788,13 @@ namespace System.Web.UI.WebControls {
                                        ApplyControlStyle (item, alt);
                                        break;
                                case ListItemType.EditItem:
-                                       item.MergeStyle (editItemStyle);
-                                       ApplyControlStyle (item, editItemStyle);
+                                       if (editItemStyle != null) {
+                                               item.MergeStyle (editItemStyle);
+                                               ApplyControlStyle (item, editItemStyle);
+                                       } else {
+                                               item.MergeStyle (itemStyle);
+                                               ApplyControlStyle (item, itemStyle);
+                                       }
                                        break;
                                case ListItemType.Footer:
                                        if (!ShowFooter) {
@@ -816,7 +826,14 @@ namespace System.Web.UI.WebControls {
                                        }
                                        break;
                                case ListItemType.Separator:
-                                       ApplyControlStyle (item, separatorStyle);
+                                       if (separatorStyle != null) {
+                                               item.MergeStyle(separatorStyle);
+                                               ApplyControlStyle (item, separatorStyle);
+                                       }
+                                       else {
+                                               item.MergeStyle (itemStyle);
+                                               ApplyControlStyle (item, itemStyle);
+                                       }
                                        break;
                                }
                        }
@@ -829,6 +846,9 @@ namespace System.Web.UI.WebControls {
 #endif         
                override void RenderContents (HtmlTextWriter writer)
                {
+                       if (Items.Count == 0)
+                               return;                 
+
                        RepeatInfo ri = new RepeatInfo ();
                        ri.RepeatColumns = RepeatColumns;
                        ri.RepeatDirection = RepeatDirection;