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
}\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
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