加载 ASP.NET DropDownList 对象
下面的示例显示了在 ASP.NET 中加载 DropDownList 哪种方法是首选,为什么?
方法 1:
构建一个加载实体信息的 ListItem
对象数组,并使用 DropDownList.Items.AddRange
方法加载列表。
方法 2:
构建实体对象的 BindableList
集合,并使用 DropDownList.DataSource
方法加载列表。
方法 3:
构建实体对象的 List
集合,并使用 DropDownList.DataSource
方法加载列表。
提前致谢。
From the examples below showing the loading of a DropDownList in ASP.NET which method is preferred and why?
Method 1:
Build an array of ListItem
objects loaded with entity information and use the DropDownList.Items.AddRange
method to load the list.
Method 2:
Build a BindableList<T>
collection of entity objects and use the DropDownList.DataSource
method to load the list.
Method 3:
Build a List<T>
collection of entity objects and use the DropDownList.DataSource
method to load the list.
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
所有方法对于下拉菜单的结果都相同,但各有优缺点。以下是一些简短的答案:
方法 1 与列表控件紧密结合。我不喜欢使用方法 1,因为它不能提供太大的灵活性,如果将来我必须将数据绑定到网格,它将无法工作。
速度:如果ListItem太多,此方法会慢一些。因为您必须将业务实体转换为 ListItem 对象才能填充下拉列表。
如果您选择使用 TwoWay 数据绑定,方法 2 是不错的选择。但asp.net默认控件和机制不支持它,因此与下拉列表一起使用是徒劳的。
速度:这个方法会快一点,因为BindableList实现了IEnumerable,并且当DataBind被调用时它会被迭代一次。
方法 3 是最好的选择,因为它是通用的、可扩展的,并且还可以与 .net 中的任何可绑定对象一起使用。
速度:该方法与方法2相同,因为List也实现了IEnumerable,并且在调用DataBind时会迭代一次。
All methods results same for dropdown but have their own pros and cons. Here are some short answers:
Method 1 is tightly coupled with List Controls. I don't prefer using method 1 because it don't provide so much flexibility if in future i'll have to bind to data to a grid it will not work.
Speed: This method will be a bit slower if there are too many ListItems. Because you will have to Convert Business Entities to ListItem Object in order to fill dropdown.
Method2 is good option if you choose to work with TwoWay databinding. But it is not supported in asp.net default controls and mechanism, so it will be used in vain with dropdown list.
Speed: This method will be little faster because BindableList implements IEnumerable and it will be iterated once when DataBind is called.
Method 3 is preferably good option because it is generic and extensible and can also work with any bindable object in .net.
Speed: This method will be same as Method2 because List also implements IEnumerable and it will be iterated once when DataBind is called.