在测试你上面的例子,我发现形式GridView
包含在被提交每次点击LinkButton
。要解决这个问题,我使用了下面的代码。
下面的脚本将在每次用户点击链接时数。
<script type="text/javascript">
var clickNo = 0;
function clickCounter() {
clickNo++;
if (clickNo == 2) {
alert("Double Click");
clickNo = 0;
}
}
</script>
我们取消了表单提交,以便我们可以跟踪用户点击链接的次数。这可能会导致页面出现问题,但似乎是无法跟踪双击的原因。
<form id="form1" runat="server" onsubmit="return false;">
我创建了一个模板字段中GridView
控制同时显示单单击和双击按钮。
<asp:TemplateField HeaderText="Edit">
<ItemTemplate>
<asp:LinkButton ID="lnkBtnEdit" runat="server">LinkButton</asp:LinkButton>
<asp:LinkButton ID="lnkBtnEditDouble" runat="server">LinkButton</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
在页面背后的代码,我们添加javascript
代码对于单次点击和javascript
代码双击。请注意:由于我在测试中使用的列数有限,因此Cell引用设置为2,而在您的示例中则为4。
try
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// Please note: the value in Cells has changed for my testing data.
LinkButton btn = (LinkButton)e.Row.Cells[2].FindControl("lnkBtnEdit");
btn.Attributes.Add("onclick", "javascript:alert('Single Click');");
LinkButton btnDouble = (LinkButton)e.Row.Cells[2].FindControl("lnkBtnEditDouble");
btnDouble.Attributes.Add("onclick", "javascript:clickCounter();");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
这应该允许您捕获双击某些链接并单击其他人。然而,正如上面提到的,表单提交现在已取消,你需要找到另一种方法来提交您的数据,如果你使用上面的代码。
http://www.codeproject.com/KB/webforms/DoubleClickGridviewRow.aspx – Neha 2012-01-17 09:52:18