使用DropDownList在GridView中编辑行

时间:2016-01-13 09:11:46

标签: c# gridview edit

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

如果尝试编辑一行字段Area而不是空值我没有问题,但如果尝试编辑一行字段Area null或空值我有经典错误:

  

对象引用未设置为对象的实例

在线:

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

我认为在我的代码中插入此条件可以解决问题,但没有成功:

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;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

请尝试:

values_list

我希望我能帮到你。