仅当用户按Enter键时,才会在使用键盘操作时在列表框上触发SelectedIndexChanged事件

时间:2015-11-18 17:26:10

标签: c# asp.net listbox keyboard

我有一个列表框,我从我的代码隐藏中填充。我有一个SelectedIndexChanged事件的处理程序。当我使用鼠标时,一切正常。它只是一个简单的标准列表框,没有任何神秘感。

但是当我尝试使用键盘时,只要我向下箭头一次,就会触发SelectedIndexChanged事件,因为当然,选择正在改变。该列表不等待我按Enter键主动选择项目。因此,如果我想选择第五项,则事件会被触发五次,每次选择一次。

问题:使用键盘操作时,是否有任何方法可以在Enter框中选择项目?或者我是否应该使用不同的控件让用户从列表中选择一个项目?

对于可访问性来说,似乎有人应该有一个解决方案。这是我的列表框的aspx代码。

<asp:ListBox id="OwnersList" runat="server" AutoPostBack="True" class="dropdown-list StopClickPropagation" onblur='$(".dropdown-list").hide();' on OnSelectedIndexChanged="OwnerSelectionChanged">
</asp:ListBox>

1 个答案:

答案 0 :(得分:0)

AFAIK,列表框或任何其他asp.net控件可以满足您的要求,无需额外的Javascript代码。为了满足您的要求,您需要在客户端连接onkeypress和onclick事件,并通过__doPostBack方法进行回发。