【问题标题】:ASP.NET Dropdownlist selectedindexchanged event not firing on up / down arrowASP.NET Dropdownlist selectedindexchanged 事件未在向上/向下箭头上触发
【发布时间】:2008-10-26 23:48:49
【问题描述】:

我在Ajax 更新面板中有一个服务器下拉列表。当我使用鼠标单击一个项目时,它会触发回发,但是当我单击向上/向下箭头以更改条目时,这不会触发。可能是什么原因?

【问题讨论】:

    标签: asp.net events drop-down-menu


    【解决方案1】:

    尝试将 DropDownList 控件的“AutoPostBack”属性设置为“true”。

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

    更多信息请见ListControl.AutoPostBack Property on MSDN

    获取或设置一个值,该值指示当用户更改列表选择时是否自动回发到服务器。

    【讨论】:

      【解决方案2】:

      试试这个:

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

      使用 onKeyUp="this.blur();",当按键未按下时,控件将失去焦点,这将触发 onChange 事件。

      【讨论】:

      • 不管这个解决方案多么好,你正在扼杀功能,如果你有一个包含 10 个项目的列表,并且用户决定通过键盘导航,他每次点击向上或向下时都会退出下拉列表。是否可以执行 onKeyUp="this.blur();this.focus();" ?
      • 虽然这对我没有用。但值得一试,需要注意:)
      【解决方案3】:

      如果您使用键盘来触发事件,我认为您必须离开控件。

      【讨论】:

      • 是否可以在向上/向下箭头上直接触发?
      【解决方案4】:

      如果您希望它与箭头键一起使用,您应该使用客户端事件onKeyDown

      【讨论】:

      • 你能给我一个例子来说明它是如何工作的吗? .以及如何将其回发到服务器以执行操作
      最近更新 更多