首页 > 代码库 > DropDownList DataBind事件到底做了什么
DropDownList DataBind事件到底做了什么
首先先使用DropDownList DropDownList的绑定的时候,我们有两种方式
1
ddl.DataSource = Enum<Spectial>.AsEnumerable().Select(s => new ListItem(s.GetText(), s.GetValue().ToString())).ToList();
ddl.DataTextField = "";
ddl.DataValueField = "";
ddl.DataBind();
2
ddl.Items.Clear();
List<ListItem> lis = Enum<Spectial>.AsEnumerable().Select(s => new ListItem(s.GetText(), s.GetValue().ToString())).ToList();
foreach (ListItem li in lis)
ddl.Items.Add(li);
所以 DropDownList DataBind() 事件 其实就是给Items赋值。
不同点1 :使用第一种方式时,是会触发DataBound()事件, 第二种不会触发这个事件。
为什么要使用第二种方式尼? 因为公司为了方便,写了一个扩展方法,一行代码就可以绑定。
如:ddlRegion.DataBind(Enum<Region>.AsEnumerable().ToList().Select(s => new ListItem(s.GetFullName(), s.GetValue().ToString())), ControlDefine.LISTITEM_SELECT);
不同点2 : 第一种方式DropDownList 绑定的时候,还要 指定DataTextField,DataValueField 。
第二种方式不需要指定。
总结: 建议使用vs自带 的绑定方式。
DropDownList DataBind事件到底做了什么