我在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。 –