我在 EditItemTemplate 中有一个带有 adrpDownList 的 GridView。原始数据在标签中,在编辑模式下被传输到 ddl。按下编辑按钮时,我收到了一个异常: System.ArgumentOutOfRangeException: 'ddlCities' has a SelectedValue 这是无效的,因为它不存在于项目列表中。我在这里找到了一个类似的问题,并根据我的需要调整了代码,如下所示(其中 city 是从 gridView 的 itemTemplate 中的标签收到的字符串):
protected void gvClients_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (!string.IsNullOrEmpty(city))
{
ddlTemp = (DropDownList)e.Row.Cells[7].FindControl("ddlCities");
if (ddlTemp != null)
{
ListItem item = ddlTemp.Items.FindByValue(city);
if (item != null)
{
item.Selected = true;
}
}
}
}
为了使它工作,我不得不删除 SelectedValue = <%# Bind("City") %> 否则上述异常再次发生。但是现在我想根据 ddl 中选择的值更新我的数据,但我没有成功,因为 ddl 没有绑定到 gridView 数据源中的任何内容。我非常感谢帮助。