2010-11-08 68 views
3

從下面的示例顯示在ASP.NET中加載DropDownList哪個方法是首選的,爲什麼?加載ASP.NET DropDownList對象

方法1:

構建載有實體的信息ListItem對象的數組,並使用DropDownList.Items.AddRange方法加載列表。

方法2:

構建BindableList<T>集合實體對象,並使用DropDownList.DataSource方法加載列表。

方法3:

構建List<T>集合實體對象,並使用DropDownList.DataSource方法加載列表。

在此先感謝。

+1

類似(但不重複)這裏的問題:http://stackoverflow.com/questions/2243950/listt-vs-bindinglistt-advantages-disadvantages – RPM1984 2010-11-09 00:24:43

回答

5

所有方法對下拉菜單結果都一樣,但各有優缺點。這裏有一些簡短的答案:

方法1與列表控件緊密結合。我不喜歡使用方法1,因爲它不提供太多的靈活性,如果將來我必須將數據綁定到網格,它將無法工作。

速度:如果有太多的ListItems,這個方法會慢一點。因爲您必須將業務實體轉換爲ListItem對象才能填充下拉列表。


如果您選擇使用TwoWay數據綁定,Method2是一個不錯的選擇。但在asp.net默認控件和機制中不支持它,所以它將在下拉列表中徒然使用。

速度:由於BindableList實現IEnumerable並且在調用DataBind時它將被迭代一次,所以此方法會稍微快一點。


方法3優選是不錯的選擇,因爲它是通用的,可擴展的,還可以在任何.NET對象綁定工作。

速度:此方法與Method2相同,因爲List還實現了IEnumerable,並且在調用DataBind時它將被迭代一次。

+0

你能評論三種方法之間的表現嗎? – Doug 2010-11-09 18:40:25

+0

速度比較只有第一種方法似乎有問題,否則方法2和方法3幾乎相等。 – 2010-11-10 06:05:16