Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何触发dropdownlist';是否通过单击“回车”或鼠标左键来选择“索引已更改”事件?_C#_Asp.net - Fatal编程技术网

C# 如何触发dropdownlist';是否通过单击“回车”或鼠标左键来选择“索引已更改”事件?

C# 如何触发dropdownlist';是否通过单击“回车”或鼠标左键来选择“索引已更改”事件?,c#,asp.net,C#,Asp.net,我在这样的页面上有一个下拉列表 <asp:DropDownList ID="ddlCities" runat="server" AutoPostBack="true" ClientIDMode="Static" OnSelectedIndexChanged="ddlCities_SelectedIndexChanged"> </asp:DropDownList> 这在正常情况下非常有效。但由于客户的行为,我必须改变dropdownlist的行为 所以我的意思是

我在这样的页面上有一个下拉列表

<asp:DropDownList ID="ddlCities" runat="server" 
AutoPostBack="true" ClientIDMode="Static" 
OnSelectedIndexChanged="ddlCities_SelectedIndexChanged"> 
</asp:DropDownList>

这在正常情况下非常有效。但由于客户的行为,我必须改变dropdownlist的行为

所以我的意思是,当以客户机为中心的下拉列表向下移动到其他列表项时,
SelectedIndexChanged
事件被触发。但我不想要这个。我希望,当用户关注dropdownlist的一个元素时,
SelectedIndexChanged
event不会被触发,而按enter键或鼠标左键事件只会触发
SelectedIndexChanged
事件


有什么方法可以做到这一点吗?

看看关键的钩子,尝试一下,这就是你的答案


如果您有jQuery,我认为您可以在客户端执行此操作。Asp.NET Dropdownlist呈现为HTML选择元素

我还没有测试过这个,但是我认为你可以在变更事件中阻止回发,并在回车键按下时触发它

$("#idofselectelement").change(function(e) {
  // This stops auto postback, so SelectedIndexChanged does not fire.
  e.preventDefault();
});



$("#idofselectelement").keyup(function(e) {
     //Check for enter keypress
     if ((e.keyCode ? e.keyCode : e.which) == 13){
            //Simulate autopostback, this triggers SelectedIndexChanged
            __doPostBack('idofselectelement','')    });

     }
在我看来,有时候在js或jQuery代码中使用此功能要容易得多,因为您可以直接操纵控件的行为,并且不局限于Asp.NET提供的功能。不知道别人是怎么想的

编辑:未测试,但我认为事件1适用于右鼠标单击

$("#idofselectelement").mousedown(function(event) {
   if(event.which == 1) {
       //Simulate autopostback, this triggers SelectedIndexChanged
        __doPostBack('idofselectelement','')                      
    }
});

我不明白,抱歉。编辑以放入一个链接以帮助理解,您想使用键挂钩来侦听最终用户按指定的键,这是一个很好的解决方案,我正在我的项目中使用jQuery,我现在将尝试此方法并给出反馈。谢谢:)老兄,按enter键时效果很好。但我还需要触发鼠标左键单击。怎么用?