2008-10-26 4 views
7

У меня есть раскрывающийся список серверов в обновляющей панели Ajax. Когда я использую мышь, чтобы щелкнуть элемент, он запускает обратную передачу, но когда я нажимаю стрелку вверх/вниз для изменения записей, это не срабатывает. Что может быть причиной?ASP.NET Dropdownlist selectedindexchanged событие не стреляет по стрелке вверх/вниз

ответ

9

Попробуйте это:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" onKeyUp="this.blur();"> 

С OnKeyUp = "this.blur();" элемент управления потеряет фокус, когда клавиша не нажата, и это вызовет событие onChange.

+0

, как бы ни было приятно это решение, вы убиваете функциональность, если у вас есть список из 10 предметов, и пользователь решает перейти по клавиатуре, он выходит из выпадающего списка каждый раз, когда он нажимает вверх или вниз. это можно сделать onKeyUp = "this.blur(); this.focus();" ? – Sander 2009-08-04 12:07:42

+0

, хотя это не сработало для меня. Но стоит попробовать и нужно обратить внимание :) – Shinigamae 2013-03-11 01:37:30

0

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

+0

Есть ли все равно, чтобы это срабатывало прямо на стрелке вверх/вниз? – leora 2008-10-26 23:56:53

0

Если вы хотите, чтобы он работал со стрелками, вы должны использовать событие на стороне клиента, onKeyDown.

+0

Можете ли вы привести мне пример того, как это будет работать. , и как это может после этого вернуться к серверу для действий – leora 2008-10-27 01:06:33

10

Попробуйте установить свойство 'AutoPostBack' элемента управления DropDownList к 'истинной'.

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"> 
</asp:DropDownList> 

См ListControl.AutoPostBack Property on MSDN для получения дополнительной информации

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

Смежные вопросы