Событие изменения текста происходит при нажатии кнопки - PullRequest
3 голосов
/ 26 сентября 2011

Я работаю над .net 2.0. Я заполняю сетку с несколькими текстовыми полями. В текстовом поле есть событие изменения текста. Также есть кнопка с событием клика. Проблема, с которой я сталкиваюсь, заключается в том, что когда я ввожу текст в текстовое поле и затем нажимаю на кнопку, происходит событие изменения текста, и выполнение не приходит к блоку щелчка кнопки. Как я могу определить, была ли нажата кнопка при запуске обоих событий.

Текстовое поле с вызовом функции для события изменения текста

<asp:TextBox ID="txtChassis" runat="server" CssClass="form_text_box" AutoPostBack="true" OnTextChanged="Chassis_TextChanged"></asp:TextBox>

, а также вызов функции для события нажатия кнопки.

<input class="form_button" id="btnSearch" title="Show Details" accesskey="S" type="submit"
                                                                    value="SAVE" name="btnSave" runat="server" onserverclick="btnSearch_ServerClick"/>

Однако, если текст помещен в текстовое поле и нажата кнопка, вызывается функция события изменения текста.

Ответы [ 2 ]

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

Ваша проблема в том, что события в ASP возникают только после PostBack.Обратная отправка происходит, если кнопка нажата, и клиент отправляет назад (для имени) свои данные полей.После этого PostBack Сервер (ваше приложение) вызывает все события, которые произошли во время последней загрузки страницы.Насколько я знаю, не существует реального порядка, в котором генерируются события, но событие textChanged должно быть выброшено в любом случае.Если вы хотите передать событие textChanged непосредственно после изменения Text, вы должны использовать «AutoPostBack», как уже упоминалось выше.Имейте в виду, что это увеличивает ваш трафик, а также может изменить поток вашего кода!Я предлагаю создать события indipendet, чтобы пользователь мог нажать кнопку «PostBack», и все события вызываются в один пост обратно.Это экономит трафик и нагрузку на сервер.Но это только мое личное мнение.

0 голосов
/ 26 сентября 2011

Вы пишете код для оконного приложения или веб-приложения? Если вы пишете для веб-приложения, для TextBoxes есть свойства:

CaseValidation
AutoPostBack

Вы должны опробовать оба этих свойства для вашего объекта TextBox.

...