2011-12-13 8 views
0

У меня есть страница, у нее было несколько текстовых полей, кнопок ссылок и кнопок. В настоящее время пользователь щелкает ссылку «Редактировать», которая позволяет им вводить данные в эту строку через текстовые поля. Однако при нажатии enter событие для одной из кнопок запускается ... это совсем не желательно. По-видимому, это поведение по умолчанию встроено?Это хорошее обходное решение для ввода кнопки отправки в текстовое поле?

Возможно ли связать каждое текстовое поле так, что нажатие клавиши ввода будет действовать на определенной назначенной кнопке или кнопке, без текстовых полей, находящихся в отдельных формах?

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

Спасибо!

ответ

1

Вы можете установить для свойства UseSubmitBehavior значение «false» в элементе управления Button. Это приведет к тому, что кнопка будет отображаться как тег <input type="button" /> вместо тега <input type="submit" />. В результате нажатие клавиши Enter не приведет к нажатию кнопки, если кнопка на самом деле не имеет фокуса.

<asp:Button runat="server" UseSubmitBehavior="false" ... /> 
1

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

if(e.KeyChar == '\n') 
    // execute button code 
1

вы можете поместить их в отдельные панели и использовать атрибут defaultbutton, чтобы сообщить панели, какую кнопку использовать при нажатии клавиши ввода.

+0

Я читал, что это было возможным решением, но другие ответы кажутся более разумными, чем полное перепроектирование страницы .aspx. – OneFreeFitz