我在EditItemTemplate中有一个带有adrpDownList的GridView。原始数据在标签中,并且在编辑模式下被转移到ddl。当按下编辑按钮,我收到一个exeption:System.ArgumentOutOfRangeException:'ddlCities'有一个SelectedValue是无效的,因为它不存在于项目列表中。 我发现了一个类似的问题在这里和适应代码到我的需求如下(其中城市是在GridView的ItemTemplate中从标签收到一个字符串):GridView与EditItemTemplate中的DropDownList
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 = <%#绑定(“城市”)%>否则上述例外再次发生。但是现在我想根据在ddl中选择的值更新我的数据,并且我没有成功这样做,因为ddl没有绑定到gridView数据源中的任何内容。我非常感谢帮助。
他们会解决所有问题吗? –
@Bala R:感谢您的评论。我修改了我的答案。 –
dropDownList通过智能标签绑定到数据源,并且在那里也设置DataTextField和DataValueField。 –