0

我有一个列表框 (GroupListBox),我想在 C# Web 表单中捕获此列表框上的 Enter 按键事件。我尝试了很多方法,但没有一种方法适合我。

4

1 回答 1

1

如果您想在服务器端执行此操作,您应该使用 __doPostBack 来获取回发。

你的列表框-

<asp:ListBox ID="ListBox1" runat="server" onkeydown="enterKeyPressed(event);">
            <asp:ListItem>one</asp:ListItem>
            <asp:ListItem>two</asp:ListItem>
            <asp:ListItem>Three</asp:ListItem>
 </asp:ListBox>

Javascript函数-

<script language="javascript" type="text/javascript">
    function enterKeyPressed(e) {
         if (window.event) {
            e = window.event;
        }
        if (e.keyCode == 13) {
            __doPostBack('ShowMessage', '');
        }
    }
</script>

在页面的页面加载事件中 -

protected void Page_Load(object sender, EventArgs e)
    {
        ClientScript.GetPostBackEventReference(this, string.Empty);
        if (Request.Params["__EVENTTARGET"] != null)
            if (Request.Params["__EVENTTARGET"] == "ShowMessage")
            {
                Label1.Text = "Enter is pressed";
            }
 }
于 2012-12-27T13:41:07.297 回答