使用DropDownList编辑GridView中的行

本文关键字:GridView DropDownList 编辑 使用 | 更新日期: 2023-09-27 18:30:10

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

如果尝试编辑字段Area不是空值的一行,我没有问题,但如果尝试编辑一行字段Area为空或空值,我会出现典型错误:

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

在线:

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

使用DropDownList编辑GridView中的行

请尝试:

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

我希望我帮助过你。