Как мне создать ASP.Net Обратная передача GridView при событии onBlur?

#c# #javascript #asp.net

#c# #javascript #asp.net

Вопрос:

У меня есть ASP.Net Просмотр сетки с двумя столбцами («ID» и «name»). Столбец name доступен для редактирования с помощью <asp:TextBox>. Что я хочу сделать, так это заставить grid запускать событие обновления, когда пользователь щелкает мышью на редактируемой ячейке.

Я знаю, что могу прикрепить обработчик события onBlur к текстовому полю, чтобы извлекать значение, когда пользователь щелкает мышью. Однако я не знаю, как программно запустить событие обновления GridView с помощью JavaScript. Есть предложения?

Комментарии:

1. Вы действительно хотите запустить страницу через полный жизненный цикл для обновления одного значения? Я бы проголосовал за простой веб-сервис, который может принимать строку и идентификатор в качестве аргумента и обновлять соответствующую запись.

Ответ №1:

На вашем TextBox наборе AutoPostBack="True" . Это вызовет обратную передачу при срабатывании клиентского change события, чего, вероятно, вы хотите, а не blur . Прикрепите TextChanged обработчик к текстовому полю, и вы сможете вызвать свой метод обновления сетки оттуда.

вы можете получить индекс строки для текстового поля, которое вызвало событие, следующим образом:

 protected void TextBox2_TextChanged(object sender, EventArgs e)
{
    GridViewRow gridRow = ((GridViewRow)((TextBox)sender).NamingContainer);
    Console.WriteLine(gridRow.RowIndex);
}
  

Комментарии:

1. Это было именно то, что я искал. Изначально я беспокоился, что autopostback будет выполнять обратную отправку при каждом нажатии клавиши, но MSDN заверила меня, что это не так.

Ответ №2:

Вы могли бы вызвать метод submit для вашего объекта Form из события onBlur.

 myForm.submit();
  

Ответ №3:

Вы могли бы установить AutoPostBack =»True» в своем текстовом поле и в коде сохранить новое значение в обработчике события.