Запустить серверное событие из элемента управления Datagrid через JavaScript - PullRequest
0 голосов
/ 04 ноября 2011

У меня есть Datagrid с TemplateColumn, который содержит TextBox.Когда пользователь нажимает Enter с фокусом на TextBox, я хочу запустить событие на стороне сервера, такое как TextChanged.

Для этого я запускаю скрипт на TextBox, вставленный в код позади.

txt.Attributes.Add("onkeydown", String.Format("javascript:if (event.keyCode == 13)__doPostBack('{0}', '');", txt.ClientID));

Сценарий правильно подключен к элементу управления, но событие на стороне сервера никогда не запускается.Он определяется как:

public void txt_TextChanged(object sender, EventArgs e)
{......}

Я также пробовал __doPostBack ('{0}', 'TextChanged').

Итак, обратный вызов запускается, но событие никогда не вызывается.

Есть идеи о том, что здесь может быть не так?

1 Ответ

0 голосов
/ 04 ноября 2011

вы можете попробовать вот так ...

вы можете использовать метод GetPostbackEventReference объекта Page для регистрации серверного серверного элемента управления ASP.NET, который может создавать обратную передачу с помощью клиентского обратного вызова.

Page.GetPostBackEventReference(txt_sssn_dt);

Затем вы можете использовать событие __dPostBack для запуска события TextChanged элемента управления выбора даты (txt_sssn_dt).Этот код был размещен внутри функции JavaScript средства выбора даты, и он будет запускаться каждый раз, когда пользователь выбирает дату из средства выбора даты.

__doPostBack("txt_sssn_dt", "TextChanged");

Также необходимо было написать простую функцию JavaScript для обработкиСитуация, когда пользователь просто хотел ввести дату прямо в палитре (txt_sssn_dt).для этого вы можете написать функцию JavaScript с именем DoPostBack ().

function DoPostBack()
{
   __doPostBack("txt_sssn_dt", "TextChanged");
}

вы должны вызывать эту функцию в событии OnChange элемента управления выбора даты.: JavaScriptAndServerEvents

...