【ASP.net控件】DropDownList数据绑定一个小bug
绑定数据出现这种情况,明明在第一项插入了一条数据,却始终在DropDownList中没有显示出来。
代码如下:
if (!IsPostBack) { //绑定城市 DataTable dtCity = new HighSearch().GetCitySelect(); DropDownList1.DataSource = dtCity; DropDownList1.DataValueField = "citycode"; DropDownList1.DataTextField = "cityname"; DataBind(); DropDownList1.Items.Insert(0, new ListItem("请选择城市", "")); DropDownList2.Items.Insert(0, new ListItem("请选择线路", "")); DropDownList3.Items.Insert(0, new ListItem("请选择站点", "")); //绑定项目 DataTable dtProject = new HighSearch().GetProjectSelect(); DropDownList4.DataSource = dtProject; DropDownList4.DataValueField = "projectname"; DropDownList4.DataTextField = "projectname"; DataBind(); DropDownList4.Items.Insert(0, new ListItem("请选择项目", "")); }
结果如下:
找了好久才找到原因,原因是DropDownList要先绑定完数据后再插入选项。
修改代码如下:
if (!IsPostBack) { //绑定项目 DataTable dtProject = new HighSearch().GetProjectSelect(); DropDownList4.DataSource = dtProject; DropDownList4.DataValueField = "projectname"; DropDownList4.DataTextField = "projectname"; DataBind(); //绑定城市 DataTable dtCity = new HighSearch().GetCitySelect(); DropDownList1.DataSource = dtCity; DropDownList1.DataValueField = "citycode"; DropDownList1.DataTextField = "cityname"; DataBind(); DropDownList1.Items.Insert(0, new ListItem("请选择城市", "")); DropDownList2.Items.Insert(0, new ListItem("请选择线路", "")); DropDownList3.Items.Insert(0, new ListItem("请选择站点", "")); DropDownList4.Items.Insert(0, new ListItem("请选择项目", "")); }
这个bug解决了。
一定要记住绑定多个数据的时候,要先把数据全部绑定完了,再插入第一项的数据。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。