Получить значение текстового поля на странице .cs в asp.net - PullRequest
0 голосов
/ 05 мая 2011

Я хочу разработать приложение на asp.net с C #.В этом приложении есть одно текстовое поле и одна метка.Я хочу следующую функциональность:

Когда я нажимаю любую клавишу в текстовом поле, я должен получить это значение на странице .cs т.е.код позади.А со страницы .cs я хочу добавить это значение к метке.

Проблема в том, что для текстового поля asp нет события нажатия клавиши, и если я возьму текстовое поле html, я не получу его значениена странице .cs

Как я могу решить эту проблему?

Ответы [ 4 ]

0 голосов
/ 05 мая 2011

Я не думаю, что это хороший подход в веб-приложении. Таким образом, вы получите множество постбэков.

Однако, если вы все еще хотите эту функциональность. У Texbox есть событие TextChanges, и если вы также измените свойство AutoPostBack текстовых полей на true, вы получите что-то близкое, но вам все равно придется перемещать курсор.

Но это все еще серьезное решение. Почему бы вам просто не использовать кнопку, которая запускает событие click?

Альтернативное решение - использовать Ajax или javaScript, ..

0 голосов
/ 05 мая 2011

В asp.net TextBox будет иметь событие TextChanged, но вам нужно будет включить постбэк для кнопки, и событие сработает, когда вы выходите из TextBox.
Для задачи, которую вы хотите, использовать javascript или добавитькнопка, и когда эта кнопка делает то, что вы хотите.

0 голосов
/ 05 мая 2011

Вы можете просто создать метод JavaScript для этого.

Ваше текстовое поле:

<asp:TextBox ID="textBox" runat="server" onkeydown="onFilterTextChanged()">
        </asp:TextBox>

Ваш JavaScript, сделайте тайм-аут, чтобы не делать это каждые 0,0001 секунды.

function onFilterTextChanged() {
        if (timeoutID)
            window.clearTimeout(timeoutID);
        timeoutID = window.setTimeout(updateFilterText, 600);
    }

Отправьте значения в CodeBehind, text - это ваш TextBox-Text.

 function updateFilterText() {
        var text = document.getElementById("<%=textBox.ClientID %>").value;
        __doPostBack("<%=textBox.ClientID%>", "CommandArg" + text);
    }

Вам не нужно будет делать столько PostBack-ов, сколько с собственным TextChanged-Event иВы можете просто использовать это, например, для плагинов Auto-Extender.Упакуйте TextBox в UpdatePanel, и все готово!

Если, конечно, вам НЕ НУЖНО возвращаться на сервер, в этом случае просто установите текст метки в updateFilterText.

0 голосов
/ 05 мая 2011

Поскольку нажатие клавиши в текстовом поле является событием на стороне клиента, но вы хотите выполнить обработку на стороне сервера, вам нужно будет использовать запросы AJAX.

Вы можете найти следующее полезное:

AJAX Toolit

Использование Jquery для вызова методов страницы asp.net

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...