Trong thử nghiệm ví dụ của bạn ở trên, tôi thấy rằng hình thức các GridView
được chứa trong được gửi mỗi khi bạn nhấp vào LinkButton
. Để giải quyết vấn đề này, tôi đã sử dụng đoạn mã sau.
Tập lệnh sau sẽ được tính mỗi khi người dùng nhấp vào liên kết.
<script type="text/javascript">
var clickNo = 0;
function clickCounter() {
clickNo++;
if (clickNo == 2) {
alert("Double Click");
clickNo = 0;
}
}
</script>
Chúng tôi hủy gửi biểu mẫu để chúng tôi có thể theo dõi số lần người dùng nhấp vào liên kết. Điều này có thể gây ra sự cố với trang của bạn, nhưng dường như là lý do tại sao các nhấp chuột kép không thể được theo dõi.
Tôi đã tạo trường mẫu trong điều khiển GridView
để hiển thị cả nút nhấp chuột và nhấp đúp.
<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>
Trong đoạn mã đằng sau trang chúng tôi thêm mã javascript
cho một nhấp chuột duy nhất và javascript
mã cho nhấp đúp. Xin lưu ý: tham chiếu Cell được đặt thành 2 trong khi trong ví dụ của bạn là 4, do các cột bị giới hạn mà tôi đã sử dụng trong thử nghiệm của mình.
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);
}
Điều này sẽ cho phép bạn nắm bắt nhấp đúp vào một số liên kết và nhấp chuột duy nhất trên một số liên kết khác. Tuy nhiên, như đã đề cập ở trên, việc gửi biểu mẫu hiện đã bị hủy và bạn sẽ cần phải tìm một phương pháp khác để gửi dữ liệu của mình nếu bạn sử dụng mã ở trên.
Nguồn
2012-01-20 11:15:26
http://www.codeproject.com/KB/webforms/DoubleClickGridviewRow.aspx – Neha