2016-01-13 49 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; 
} 

我希望我已經幫你。

相關問題