ASP.NET Обратная передача в GridView не устанавливает значения опубликованных элементов управления

StackOverflow https://stackoverflow.com/questions/149311

  •  02-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top