2003-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
authorGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Fri, 20 Jun 2003 13:07:15 +0000 (13:07 -0000)
committerGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Fri, 20 Jun 2003 13:07:15 +0000 (13:07 -0000)
* HtmlSelect.cs: fixed bug #44894.

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

mcs/class/System.Web/System.Web.UI.HtmlControls/ChangeLog
mcs/class/System.Web/System.Web.UI.HtmlControls/HtmlSelect.cs

index efb8a91af3f684bdcd598ad36ee4bb402c32ddb4..f594e5cf9f9f4186bb3b8a2718a18109932a8174 100644 (file)
@@ -1,3 +1,7 @@
+2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * HtmlSelect.cs: fixed bug #44894.
+
 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
 
        * HtmlImage.cs:
index 1958854f3fee0c53cb9d5318b0fdecda7f7a0602..c7c38012a3ae4351b3543c02c4e547d82e0466b8 100755 (executable)
@@ -7,6 +7,7 @@ using System;
 using System.Web;\r
 using System.Web.UI;\r
 using System.Web.UI.WebControls;\r
+using System.Web.Util;\r
 using System.Globalization;\r
 using System.ComponentModel;\r
 using System.Collections;\r
@@ -73,36 +74,39 @@ namespace System.Web.UI.HtmlControls{
                        }\r
                }\r
                \r
-               protected override void OnDataBinding(EventArgs e){\r
-                       base.OnDataBinding(e);\r
-                       IEnumerable resolvedDataSource = System.Web.Util.DataSourceHelper.GetResolvedDataSource(DataSource, DataMember);\r
-                       if ( resolvedDataSource != null){\r
+               protected override void OnDataBinding (EventArgs e)\r
+               {\r
+                       base.OnDataBinding (e);\r
+                       IEnumerable resolvedDataSource = DataSourceHelper.GetResolvedDataSource (DataSource, DataMember);\r
+                       if (resolvedDataSource != null) {\r
                                string text = DataTextField;\r
                                string value = DataValueField;\r
                                Items.Clear();\r
+\r
                                ICollection rdsCollection = resolvedDataSource as ICollection;\r
-                               if (rdsCollection != null){\r
+                               if (rdsCollection != null)\r
                                        Items.Capacity = rdsCollection.Count;\r
-                               }\r
+\r
                                bool valid = false;\r
                                if (text.Length >= 0 && value.Length >= 0)\r
                                        valid = true;\r
-                               ListItem li = new ListItem();\r
-                               IEnumerator current = resolvedDataSource.GetEnumerator();\r
-                               while(current.MoveNext()){\r
+\r
+                               foreach (object current in resolvedDataSource) {\r
+                                       ListItem li = new ListItem ();\r
                                        if (valid == true){\r
-                                               if (text.Length >= 0)\r
-                                                       li.Text = DataBinder.GetPropertyValue(current, text) as string;\r
-                                               if (value.Length >= 0)\r
-                                                       li.Value = DataBinder.GetPropertyValue(current, value) as string;\r
-                                       }\r
-                                       else{\r
+                                               if (text.Length > 0)\r
+                                                       li.Text = DataBinder.GetPropertyValue (current, text, null);\r
+                                               if (value.Length > 0)\r
+                                                       li.Value = DataBinder.GetPropertyValue (current, value, null);\r
+                                       } else {\r
                                                li.Value = li.Text = current.ToString();\r
                                        }\r
+\r
+                                       Items.Add (li);\r
                                }\r
-                               Items.Add(li);\r
                        }\r
-                       if ( _cachedSelectedIndex != -1){\r
+\r
+                       if (_cachedSelectedIndex != -1) {\r
                                SelectedIndex = _cachedSelectedIndex;\r
                                _cachedSelectedIndex = -1;\r
                        }\r
@@ -283,14 +287,11 @@ namespace System.Web.UI.HtmlControls{
                                return _dataSource;\r
                        }\r
                        set{\r
-                               if (value != null && value is IListSource){\r
-                                       if (value is IEnumerable){\r
-                                               _dataSource = value;\r
-                                       }\r
-                                       else{\r
-                                               throw new ArgumentException("Invalid dataSource type");\r
-                                       }\r
+                               if (value != null && !(value is IListSource)) {\r
+                                       if (!(value is IEnumerable))\r
+                                               throw new ArgumentException ("Invalid dataSource type");\r
                                }\r
+                               _dataSource = value;\r
                        }\r
                }\r
                \r