asp.net отправка текстовых сообщений перед кнопкой отправки - PullRequest
0 голосов
/ 17 августа 2011

У меня есть форма ASP.NET с несколькими элементами управления и кнопкой отправки внизу, все внутри панели обновлений:

<asp:UpdatePanel runat="server" ID="upContent">
    <ContentTemplate>
        <asp:TextBox runat="server" ID="tbxMyTextBox" AutoPostBack="true" />
        <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClientClick="return doStuff()" OnClick="btnSubmit_Click" />
    </ContentTemplate>
</asp:UpdatePanel>

Если я что-то напишу в TextBox и сразу же нажму «отправить» (не щелкая сначала из TextBox), изменения не будут записаны (как видно в обработчике событий на стороне сервера). Однако если я что-то напишу в TextBox, а затем переключу фокус на другой элемент управления, через UpdatePanel произойдет автозапуск, а затем щелчок «отправить» распознает эти изменения. Как я могу заставить это содержимое обновляться прямо, когда я нажимаю кнопку отправки, при этом все еще выполняя события на стороне клиента и на стороне сервера, прикрепленные к нему? Спасибо!

Ответы [ 2 ]

1 голос
/ 17 августа 2011

Возможно ли, что ваше текстовое поле очищается из-за какого-либо обработчика событий при отправке / нажатии?Я предлагаю вам использовать какой-либо инструмент, такой как Fiddler, для проверки данных POST в запросе.Или вы можете поставить точку останова на своем коде на стороне сервера и проверить данные запроса.Ищите, в частности, Request.Form[tbxMyTextBox.UniqueID] - т.е. ищите наличие значения для имени вашего текстового поля (свойство name на стороне клиента, которое соответствует свойству UniqueID на стороне сервера).Если запрос содержит значение, введенное в текстовом поле, то что-то происходит на стороне сервера, но хорошей новостью является то, что вы всегда можете извлечь значение из объекта Request.Если значение отсутствует в объекте Request, это означает, что код на стороне клиента очищает значение перед отправкой.

0 голосов
/ 17 августа 2011

Если метод onclick возвращает false, он отменяет действие, которое кнопка обычно выполняет.Поскольку ваша кнопка обычно отправляет вашу форму, но, похоже, она не отправляется, ваш код JavaScript на стороне клиента в doStuff, вероятно, возвращает false.

...