Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > обработка события нажатия Enter на <asp: textbox >


Автор: viktor1301 22.8.2006, 05:28
Помогите пожалуйста.
На *.aspx странице имеется три <asp: textbox> и соответствующие им кнопки <asp: button>.
Я сделал так, что при нажатии на разные <asp:button> отображаются результаты поиска с разными критериями.
Как сделать так, чтобы поиск вызывался при нажатии Enter на соответствуюшем <asp: textbox>?

Автор: Softaz 22.8.2006, 12:50
Наверное надо сделать Java скрипт, который будет передавать скрытый параметр, в котором будет идентификатор текст бокса.

Автор: dazy 28.6.2007, 10:23
Меня тоже интересует этот вопрос.

Можно подробнее объяснить, как реализовать функционал - нажимаем в textBox Enter (Ctrl-Enter), и выполняется то что повесили на button?  smile 


Автор: vladsch 28.6.2007, 10:35
Элементарно, 

Если используешь FW 2.0, то можно положить первую кнопку и первый эдит на одну Panel, а вторую кнопку и второй эдит на другую, а у панелей выставить свойство DefaultButton нужным образом.

http://weblogs.asp.net/scottgu/archive/2005/08/04/421647.aspx

Автор: dazy 28.6.2007, 11:15
Да, спасибо решение с панелькой помогло.

Автор: Mymik 29.6.2007, 10:01
Вообще, если более рациональный способ и менее затратный... потому как каждый вот такой вот TextBox засовывать в отдельный Panel, не сильно радует, да и кнопка может находиться совершенно в другой части страницы... (к примеру кнопка находится в одном ascx файле, а форма в другом ascx файле).
Потому в Framework 1.1 используется 
Код

Page.GetPostBackClientEvent();

Пример работы -->>
Код

<asp:TextBox ID="txtTest" runat="server" />
<asp:Button ID="btnTest" OnClick="btnTest_Click" runat="server" />
<asp:Button ID="btnTest2" OnClick="btnTest2_Click" runat="server" />

Код

    protected void Page_Load(object sender, EventArgs e)
    {
        txtTest.Attributes.Add("onkeypress", "if(event.keyCode == 13) {" + Page.GetPostBackClientEvent(btnTest2, "") + "};");
    }

    protected void btnTest_Click(object sender, EventArgs e)
    {
        throw new Exception("1 The method or operation is not implemented.");
    }

    protected void btnTest2_Click(object sender, EventArgs e)
    {
        throw new Exception("2 The method or operation is not implemented.");
    }

В результате будет вызван метод btnTest2_Click

А в Framework 2.0  все эти методы перешли в ClientScript
Код

Page.ClientScript.GetPostBackEventReference()

Думаю что пример приводить не надо, потому как это будет точно такой же код, только генерация будет немного отличаться.

Автор: dazy 29.6.2007, 10:57
Mymik,  спасибо.
А Ctrl+Enter, какой event.keyCode будет?

Автор: Mymik 29.6.2007, 13:59
Код

if(event.ctrlKey&&(event.which?event.which:event.keyCode)==13){alert(111)};

event.ctrlKey -- определяет нажата ли клавиша Ctrl
event.which -- какая клавиша еще нажата (для FF)
event.keyCode -- какая клавиша нажата (для IE)


tol05, путаешь GUI программирование и Web-программирования.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)