2016-01-13 72 views
0

我需要在RowDataBound事件中编辑GridView行。使用DropDownList在GridView中编辑行

如果试图编辑一行与现场Area不为空值,我没有问题,但如果试图编辑一行与现场Area null或空值我有经典的错误:

未将对象引用设置为一个对象

上线的一个实例:

ddlCities.Items.FindByValue(hdnval.Value).Selected = true; 

我认为插入米y代码这个条件解决问题,但没有成功:

if (!string.IsNullOrEmpty(hdnval.Value)) 
{ 
    ddlCities.Items.FindByValue(hdnval.Value).Selected = true; 
} 
else 
{ 
    ddlCities.Items.FindByValue(hdnval.Value).Selected = false; 
} 

请帮助我,提前谢谢。

我的代码如下。

protected void gvProducts_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow && gvProducts.EditIndex == e.Row.RowIndex) 
    { 
     DropDownList ddlCities = (DropDownList)e.Row.FindControl("Area"); 
     HiddenField hdnval = (HiddenField)e.Row.FindControl("hdnArea"); 
     string query = " Select distinct Area from ... ; "; 
     OdbcCommand cmd = new OdbcCommand(query); 
     ddlCities.DataSource = GetData(cmd); 
     ddlCities.DataTextField = "Area"; 
     ddlCities.DataValueField = "Area"; 
     ddlCities.DataBind(); 

     if (!string.IsNullOrEmpty(hdnval.Value)) 
     { 
      ddlCities.Items.FindByValue(hdnval.Value).Selected = true; 
     } 
     else 
     { 
      ddlCities.Items.FindByValue(hdnval.Value).Selected = false; 
     } 
    } 
} 
+0

[什么是'NullReferenceException'和我该如何解决它?](http://stackoverflow.com/q/4660142/447156) –

+0

这里有一个很好的教程http://codepedia.info/2015/02/ BIND的下拉列表,里面-gridview的编辑模板/ –

回答

0

请尝试:

if(ddlCities.Items.FindByValue(hdnval.Value) != null) 
{ 
    ddlCities.Items.FindByValue(hdnval.Value).Selected = true; 
} 

我希望我已经帮你。

相关问题