【问题标题】:How to add DoubleClick Event To List Box如何将 DoubleClick 事件添加到列表框
【发布时间】:2015-09-03 17:12:24
【问题描述】:

我有一个 asp Listbox 控件

<asp:ListBox ID="lstBox" runat="server" CssClass="listBox"></asp:ListBox>

我想将双击事件添加到 列表框 我想要一个弹出窗口。我用谷歌搜索了它,但没有找到我的任何要求。

是否有任何事件可以捕获 DoubleClick 事件。如果没有任何替代方案来实现这一点。

顺便说一句,我想在服务器端做所有事情,我在WebForm做这件事

【问题讨论】:

  • 你想在点击右键获取选中的项目吗?
  • 不是选中的项目左右,当我双击我只想打开一个弹出窗口
  • 好吧,请看我的回答。

标签: c# asp.net listbox


【解决方案1】:

这里使用一个隐藏的输入字段来识别列表框何时被点击:

<%@ Page Language="C#" %>
<script runat="server">
void Page_Load(Object sender, EventArgs e){
if(Request.Params["ListBox1Hidden"] != null
&& (string)Request.Params["ListBox1Hidden"] == "doubleclicked") {
//This means It was double click
Response.Write("Double Click was fired selected item is " 
+ ListBox1.SelectedItem.Text);
   }
}

 </script>
<html>
<head>

<title></title>
<script lang="javascript">
    function ListBox1_DoubleClick() {
        /* we will change value of this hidden field so 
                 that in 
                 page load event we can identify event.
                        */

        document.forms[0].ListBox1Hidden.value = "doubleclicked";
        document.forms[0].submit();
    }
</script>
</head>
<body>
<form id="Form1" runat="server">

        <asp:ListBox id="ListBox1" 
                ondblclick="ListBox1_DoubleClick()" runat="server">
            <asp:ListItem Value="1">One</asp:ListItem>
            <asp:ListItem Value="2">Two</asp:ListItem>
            <asp:ListItem Value="3">Three</asp:ListItem>
            <asp:ListItem Value="4">Four</asp:ListItem>
        </asp:ListBox>
        <input type="hidden" name="ListBox1Hidden" />



</form>

【讨论】:

  • 它没有MouseDoubleClick事件@Slashy
  • @hachitti 等等.. 你只想在它之后显示一个弹出窗口?你为什么要为此使用javascript?在这种情况下,javascript 方法会有所帮助吗?
  • 我想向它添加一些数据,我想在服务器端@Slashy
  • 我告诉过你我想在我的 cs 页面上而不是在我的 aspx @Slashy 上这样做
  • @hachitti 但它是服务器端,您可以从函数void Page_Load.. 获取数据。
【解决方案2】:

您可以将页面加载时的双击事件添加到列表框,并且可以检测页面加载时的双击,如下代码所示。

<asp:ListBox ID="lstitem" runat="server"></asp:ListBox>

页面加载

 protected void Page_Load(object sender, EventArgs e)
            { 
               if (Request["__EVENTARGUMENT"] != null && Request["__EVENTARGUMENT"] == "lstdbclick")
                {
                   //your popup code here
                }
                lstitem.Attributes.Add("ondblclick", ClientScript.GetPostBackEventReference(lstitem, "lstdbclick"));
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 2011-06-29
    • 2010-11-20
    • 2022-01-05
    • 2017-08-26
    • 1970-01-01
    相关资源
    最近更新 更多