【问题标题】:Loading an ASP.NET DropDownList object加载 ASP.NET DropDownList 对象
【发布时间】:2011-05-06 23:06:51
【问题描述】:

以下示例显示了在 ASP.NET 中加载 DropDownList 时首选哪种方法以及为什么?

方法一:

构建一个加载了实体信息的ListItem对象数组,并使用DropDownList.Items.AddRange方法加载列表。

方法二:

构建一个BindableList<T> 实体对象集合并使用DropDownList.DataSource 方法加载列表。

方法三:

构建一个List<T> 实体对象集合并使用DropDownList.DataSource 方法加载列表。

提前致谢。

【问题讨论】:

标签: .net asp.net data-binding drop-down-menu


【解决方案1】:

下拉菜单的所有方法结果相同,但各有优缺点。以下是一些简短的答案:

方法 1 与列表控件紧密结合。我不喜欢使用方法 1,因为如果将来我必须将数据绑定到网格,它就不会提供太大的灵活性。

速度:如果 ListItem 太多,此方法会慢一些。因为您必须将业务实体转换为 ListItem 对象才能填充下拉列表。


如果您选择使用 TwoWay 数据绑定,Method2 是一个不错的选择。但是在asp.net默认控件和机制中是不支持的,所以和下拉列表一起使用会徒劳无功。

速度:这个方法会快一点,因为 BindableList 实现了 IEnumerable 并且在调用 DataBind 时会迭代一次。


方法 3 是最好的选择,因为它是通用且可扩展的,并且还可以与 .net 中的任何可绑定对象一起使用。

速度:这个方法和Method2一样,因为List也实现了IEnumerable,调用DataBind的时候会迭代一次。

【讨论】:

  • 在速度比较中,只有第一种方法似乎有问题,否则 Method2 和 Method3 几乎相等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-09
  • 1970-01-01
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多