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键时效果很好。但我还需要触发鼠标左键单击。怎么用?