как найти элемент управления в шаблоне редактирования элемента?
У меня есть gridview в форме и есть поле шаблона, одно из которых:
теперь в событии RowEditing мне нужно получить выбранное значение dropdownlist страны, а затем я установлю это значение как Ddlcountry.selectedvalue = value; так что, когда появляется раскрывающийся список шаблона элемента редактирования, он покажет выбранное значение, а не индекс 0 из раскрывающегося списка. но я не могу получить значение выпадающего списка. Я уже пробовал это:
int index = e.NewEditIndex; DropDownList DdlCountry = GridView1.Rows[index].FindControl("DdlCountry") as DropDownList;
нужна помощь пожалуйста. Thanx.
- Как добавить параметр «подтвердить удаление» в ASP.Net Gridview?
- Высота Gridview снижается
- GridView - отображать заголовки на пустом источнике данных
- Получить индекс Row в событии Rowcommand от Asp.net
- Как найти элемент управления в TemplateField GridView?
- Как скрыть столбцы в ASP.NET GridView с автогенерированными столбцами?
- Lazy загружает изображения в gridView
- Пейджинговые и сортировочные сетки с ASP.Net MVC
- Android gridview сохраняет выбранный элемент
- Условно скрыть CommandField или ButtonField в Gridview
- Редактирование строки Gridview - динамическое связывание с DropDownList
- Android: Как GridView auto_fit находит количество столбцов?
- Как реализовать Yii2 Modal Dialog на кнопке просмотра и обновления Gridview?
Вам нужно снова привязать GridView
чтобы иметь доступ к EditItemTemplate
управления в EditItemTemplate
. Поэтому попробуйте следующее:
int index = e.NewEditIndex; DataBindGridView(); // this is a method which assigns the DataSource and calls GridView1.DataBind() DropDownList DdlCountry = GridView1.Rows[index].FindControl("DdlCountry") as DropDownList;
Но вместо этого я бы использовал RowDataBound
для этого, иначе вы дублируете код:
protected void gridView1_RowDataBound(object sender, GridViewEditEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if ((e.Row.RowState & DataControlRowState.Edit) > 0) { DropDownList DdlCountry = (DropDownList)e.Row.FindControl("DdlCountry"); // bind DropDown manually DdlCountry.DataSource = GetCountryDataSource(); DdlCountry.DataTextField = "country_name"; DdlCountry.DataValueField = "country_id"; DdlCountry.DataBind(); DataRowView dr = e.Row.DataItem as DataRowView; Ddlcountry.SelectedValue = value; // you can use e.Row.DataItem to get the value } } }
Вы можете попробовать использовать этот код – на EditIndex property
var DdlCountry = GridView1.Rows[GridView1.EditIndex].FindControl("DdlCountry") as DropDownList;
Ссылка: http://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.gridview.editindex.aspx