Как установить событие для нажатия «Enter», когда курсор находится внутри текстового поля в пользовательском контроле - PullRequest
0 голосов
/ 28 октября 2010

У меня есть usercontrol, который используется для поиска.Есть текстовое поле и кнопка поиска.При нажатии кнопки вызывается метод поиска.Я хочу, чтобы поиск также происходил, когда курсор находится внутри текстового поля и нажата клавиша ввода.

Моей первой мыслью о том, как это сделать, было, возможно, добавить событие для отправки действия тега формы.Однако этот usercontrol не имеет тега формы.

У кого-нибудь есть предложения?

Спасибо!

Ответы [ 3 ]

1 голос
/ 28 октября 2010

Я бы сделал это с помощью JavaScript: присоедините обработчик OnKeyPress, который ищет код клавиши 13 и вызывает form.submit:

function enterPressed(evn) {
if (window.event && window.event.keyCode == 13) {
  document.forms[0].submit;
} else if (evn && evn.keyCode == 13) {
  document.forms[0].submit;
}
}
document.onkeypress = enterPressed;
0 голосов
/ 28 октября 2010

Вы работаете на веб-странице или локально?Нажатие Enter в текстовом поле обычно перемещает вас к следующему полю локально, чтобы вы могли использовать событие OnLeave (я думаю, это его имя).На веб-странице Enter обычно отправит форму, которая именно то, что вы хотите.Получите новое значение из события TextChanged.

0 голосов
/ 28 октября 2010

По умолчанию, если пользователь нажимает Enter в текстовом поле, форма публикуется, вызывая обратную передачу. Поэтому:

Сделайте это в событии ontextchanged. Вот самый простой пример написанного кода:

 <asp:TextBox ID="TextBox1" runat="server" ontextchanged="TextBox1_TextChanged"></asp:TextBox>
 <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
 <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

и в коде позади:

protected void Button1_Click(object sender, EventArgs e)
{
    SomeFunctionForHandlingEvents();
}
 protected void TextBox1_TextChanged(object sender, EventArgs e)
{
    SomeFunctionForHandlingEvents();
}
private void SomeFunctionForHandlingEvents()
{
     Label1.Text = "event called";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...