使用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;
}
}
}
请尝试:
if(ddlCities.Items.FindByValue(hdnval.Value) != null)
{
ddlCities.Items.FindByValue(hdnval.Value).Selected = true;
}
我希望我帮助过你。