ASP.NET DropDownList FindByValue 未将对象引用设置到对象的实例 解决方法

1、粗心把DataValueField中的字段名称写错了。

2、把DataBind()写在了FindByValue()后面了,以下代码是正确顺序:

 1 BLL.Student bllStu = new BLL.Student();
 2 //设置数据源
 3 StuDDL.DataSource = bllStu.GetStudentList();
 4 //设置显示数据字段名称
 5 StuDDL.DataTextField = "StuName";
 6 //设置Value值字段名称
 7 StuDDL.DataValueField = "StuId";
 8 //绑定
 9 StuDDL.DataBind();
10 //设置选中值
11 StuDDL.Items.FindByValue(stuId).Selected = true;

3、数据源中确实没有找到该值。那就该加非Null判断了,代码如下:

 1  BLL.Student bllStu = new BLL.Student();
 2  //设置数据源
 3  StuDDL.DataSource = bllStu.GetStudentList();
 4  //设置显示数据字段名称
 5  StuDDL.DataTextField = "StuName";
 6  //设置Value值字段名称
 7  StuDDL.DataValueField = "StuId";
 8  //绑定
 9  StuDDL.DataBind();
10  //获取选中值
11  object findValue=StuDDL.Items.FindByValue(stuId);
12  if(findValue!=null)
13  {
14    findValue.Selected = true;
15  }

 

posted @ 2015-12-25 15:58  周睿  阅读(930)  评论(0编辑  收藏  举报