ASP .Net Textbox Текстовое событие - PullRequest
4 голосов
/ 14 февраля 2012

У меня есть веб-страница. Я показываю записи из таблицы, допустим, студентов на моей странице. Я опрашиваю всех студентов и показываю их в сетке. Я хочу использовать текстовое поле для фильтрации результатов просмотра данных. Например, если пользователь вводит «а» в текстовое поле, в сетке будут отображаться только те ученики, у которых в имени есть «а». Я хочу обновить сетку одновременно с редактированием текстового поля.

Я установил для свойства autopostback текстового поля значение true, и я обновляю сетку в текстовом событии textbox. Но текстовое событие происходит только после того, как текстовое поле теряет фокус. Как сделать так, чтобы пользователь запускал только один символ? спасибо.

Ответы [ 5 ]

4 голосов
/ 14 февраля 2012

Вы должны использовать событие onKeyDown.Однако я бы посоветовал вам использовать ASP.NET AJAX или jQuery для загрузки результатов с помощью Ajax.

Вот один пример из asp.net: http://www.asp.net/ajaxlibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx

Другой пример изКод проекта: http://www.codeproject.com/Articles/38803/Google-Like-Search-TextBox

2 голосов
/ 14 февраля 2012

Возможно, вы захотите показать свой текущий код, если есть определенный метод, который вы хотите использовать для этого.В противном случае вы получите людей, говорящих вам так, как они это сделают.

Это сейчас выглядит примерно так?

<asp:Textbox id="myTextbox" runat="server" onChange="txtChanged" AutoPostBack="true"/>

public void txtChanged(object sender, EventArgs e)
{
    //Get text from textbox
    string text = ((TextBox)sender).Text;

    //Do what ever it is you want to do to edit the text
    text = text.ToUpper();

    //Update the other textbox with this text
    txtMyText2.Text = text;
}
1 голос
/ 14 февраля 2012

Я думаю, что лучший и самый чистый способ - использовать Rad Controls, вот пример того, как это сделать: http://demos.telerik.com/aspnet-ajax/controls/examples/integration/gridandcombo/defaultcs.aspx?product=grid

0 голосов
/ 16 августа 2013

Событие TextChanged срабатывает только при отправке запроса на сервер. Если вы хотите запустить событие или создать функцию при изменении текста внутри текстового поля, используйте событие OnKeyDown (верно для Schiavini).

0 голосов
/ 14 февраля 2012

Вы можете использовать PicNet, чтобы сделать это на клиенте, а не на сервере, для лучшего взаимодействия с пользователем.Вы можете найти его здесь http://www.picnet.com.au/resources/tablefilter/demo.htm Помните, что Gridview отображается в виде таблицы HTML, поэтому вы можете свободно использовать этот плагин jQuery.

Удачи!

...