在測試你上面的例子,我發現形式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