Author: igorz
Date: 2007-10-31 06:03:56 -0500 (Wed, 31 Oct 2007)
New Revision: 88546

Modified:
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/DataList.cs
   trunk/mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog
   trunk/mcs/class/System.Web/Test/System.Web.UI.WebControls/DataListTest.cs
Log:
2007-10-31 Igor Zelmanovich <[EMAIL PROTECTED]>

        * DataList.cs: 
        state of DataList.Items are restored correct on PostBack
        such Items.Count and ItemType.

2007-10-31 Igor Zelmanovich <[EMAIL PROTECTED]>

        * DataListTest.cs:
        Added new test.


Modified: trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog      
2007-10-31 09:43:18 UTC (rev 88545)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog      
2007-10-31 11:03:56 UTC (rev 88546)
@@ -1,5 +1,11 @@
 2007-10-31 Igor Zelmanovich <[EMAIL PROTECTED]>
 
+       * DataList.cs: 
+       state of DataList.Items are restored correct on PostBack
+       such Items.Count and ItemType.
+
+2007-10-31 Igor Zelmanovich <[EMAIL PROTECTED]>
+
        * BaseValidator.cs: 
        validator is rendered correct if EnabledClientClient is false.
 

Modified: trunk/mcs/class/System.Web/System.Web.UI.WebControls/DataList.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/DataList.cs    
2007-10-31 09:43:18 UTC (rev 88545)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/DataList.cs    
2007-10-31 11:03:56 UTC (rev 88546)
@@ -532,6 +532,7 @@
                protected override void CreateControlHierarchy (bool 
useDataSource)
                {
                        Controls.Clear();
+                       ItemList.Clear ();
 
                        IEnumerable ds = null;
                        ArrayList keys = null;
@@ -570,7 +571,7 @@
                                                type = ListItemType.EditItem;
                                        else if (idx == selected_index) 
                                                type = 
ListItemType.SelectedItem;
-                                       else if (idx % 2 != 0) 
+                                       else if ((idx & 1) != 0) 
                                                type = 
ListItemType.AlternatingItem;
 
                                        DoItemInLoop (idx, o, useDataSource, 
type);
@@ -579,11 +580,11 @@
                        } else {
                                for (int i = 0; i < idx; i++) {
                                        type = ListItemType.Item;
-                                       if (idx == edit_item_index) 
+                                       if (i == edit_item_index) 
                                                type = ListItemType.EditItem;
-                                       else if (idx == selected_index) 
+                                       else if (i == selected_index) 
                                                type = 
ListItemType.SelectedItem;
-                                       else if (idx % 2 != 0) 
+                                       else if ((i & 1) != 0) 
                                                type = 
ListItemType.AlternatingItem;
 
                                        DoItemInLoop (i, null, useDataSource, 
type);
@@ -632,14 +633,14 @@
                        case ListItemType.SelectedItem:
                        case ListItemType.EditItem:
                                int index = item.ItemIndex;
-                               if ((EditItemIndex == index) && 
(EditItemTemplate != null))
+                               if ((item.ItemType == ListItemType.EditItem) && 
(EditItemTemplate != null))
                                        t = EditItemTemplate;
-                               else if ((SelectedIndex == index) && 
(SelectedItemTemplate != null))
+                               else if ((item.ItemType == 
ListItemType.SelectedItem) && (SelectedItemTemplate != null))
                                        t = SelectedItemTemplate;
-                               else if (((index & 1) == 0) || 
(alternatingItemTemplate == null))
+                               else if ((item.ItemType == 
ListItemType.AlternatingItem) && (AlternatingItemTemplate != null))
+                                       t = AlternatingItemTemplate;
+                               else
                                        t = ItemTemplate;
-                               else
-                                       t = alternatingItemTemplate;
                                break;
                        }
 

Modified: trunk/mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog 
2007-10-31 09:43:18 UTC (rev 88545)
+++ trunk/mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog 
2007-10-31 11:03:56 UTC (rev 88546)
@@ -1,3 +1,8 @@
+2007-10-31 Igor Zelmanovich <[EMAIL PROTECTED]>
+
+       * DataListTest.cs:
+       Added new test.
+
 2007-10-30 Igor Zelmanovich <[EMAIL PROTECTED]>
 
        * ImageTest.cs:

Modified: 
trunk/mcs/class/System.Web/Test/System.Web.UI.WebControls/DataListTest.cs
===================================================================
--- trunk/mcs/class/System.Web/Test/System.Web.UI.WebControls/DataListTest.cs   
2007-10-31 09:43:18 UTC (rev 88545)
+++ trunk/mcs/class/System.Web/Test/System.Web.UI.WebControls/DataListTest.cs   
2007-10-31 11:03:56 UTC (rev 88546)
@@ -1197,6 +1197,21 @@
                                Assert.AreEqual (style, item.ControlStyle, 
String.Format ("#01-{0}", i));
                        }
                }
+
+               [Test]
+               public void DataBindTwice () {
+                       DataList dl = new DataList ();
+
+                       dl.DataSource = new object [] { "1", "2", "3" };
+                       dl.DataBind ();
+
+                       Assert.AreEqual (3, dl.Items.Count, "first binding");
+
+                       dl.DataSource = new object [] { "a", "b", "c" };
+                       dl.DataBind ();
+
+                       Assert.AreEqual (3, dl.Items.Count, "second binding");
+               }
        }
 }
 

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to