ASP.NET GridView обратная передача не устанавливает значения опубликованных элементов управления - PullRequest
1 голос
/ 29 сентября 2008

При добавлении EditItemTemplate некоторой сложности (несколько полей в одном шаблоне) и последующем анализе элементов управления из события RowUpdating элементы управления, которые были введены пользователем вручную, не имеют значений. Я предполагаю, что что-то происходит, когда данные связаны, но у меня были случаи, когда простое добавление и присвоение элемента управления в codebehind запускало поведение, а удаление этого кода заставляло код работать. В качестве обходного пути я могу запросить (controlname.UniqueId), чтобы получить его значение, но это скорее взлом.

Редактировать Когда я получаю доступ к значению, как это

TextBox txtValue = gvwSettings.SelectedRow.FindControl("txtValue") as TextBox;

текстовое поле найдено, но .Text не является пользовательским вводом.

Ответы [ 3 ]

1 голос
/ 29 сентября 2008

Вы выключили ViewState? Вы добавили элемент управления программно в шаблон? Если да, то вы их создали на правильной стадии?

0 голосов
/ 29 сентября 2008

Перемещено привязка данных после возврата к Page_Init

0 голосов
/ 29 сентября 2008

Вы должны иметь возможность использовать GridViewUpdateEventArgs для извлечения введенного значения, например:

TextBox txtValue = gvwSettings.SelectedRow.FindControl("txtValue") as TextBox;

Я использовал этот синтаксис ранее, и он работает как шарм.

...