在网络上找了很多关于 ASP.NET中ListBox实现Double Click事件的信息,很多都是在用JS来实现双击事件的方法,看后感觉都比较麻烦,而且容易出错.通过一段时间的搜索,重要找到了一个自己觉得比较满意的方法来实现该功能.起具体实现方法如下:
(1)在WEB页面上加入JS脚本和存放ListBox事件的隐藏输入框,LISTBOX是用来保存时间的名称,在CS页面用到:其JS代码如下:
<script language="javascript">
function ListBox1_DoubleClick() {
/* we will change value of this hidden field so that inpage load event we can identify event.
*/
document.forms[0].ListBox1Hidden.value = "doubleclicked";
document.forms[0].submit();
}
</script>
(2)将ASP.NET控件LISTBOX中加入双击事件声明如下:
<asp:ListBox id="ListBox1"
οndblclick="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>
(3)在WEB窗体加载的时候执行如下代码(即双击LISTBOX中ITEM后执行的内容),
if(Request.Params["ListBox1Hidden"] != null
&& (string)Request.Params["ListBox1Hidden"] == "doubleclicked" )
{
//the Listwas double click Event
}
}
例子如下:
<html>
<head>
<script language="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 runat="server">
<div>Double click on Listbox
<br />
<asp:ListBox id="ListBox1"
οndblclick="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" />
</div>
<div>click on button
<br />
<asp:Button id="Button1" οnclick="Button1_Click"
runat="server" Text="Button"/>
</div>
</form>
</body>
</html>
WEB窗体加载时候执行下列代码就能实现双击ListBox中Item执行一些操作
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);
}
}