首页 > 代码库 > 【ASP.net控件】DropDownList数据绑定一个小bug

【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解决了。

 

  一定要记住绑定多个数据的时候,要先把数据全部绑定完了,再插入第一项的数据。