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