#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» в своем текстовом поле и в коде сохранить новое значение в обработчике события.