避免多次单击图像按钮

时间:2011-08-05 04:39:26

标签: c# .net asp.net gridview

我有一个gridview,它在gridview的模板字段中有图像按钮。现在,在单击图像按钮时,会在数据表中插入一个新行并绑定到gridview。

但如果我再次单击图像按钮,则插入第二行(与第一行相同)并再次绑定到gridview。如何避免这种情况?

谢谢!

3 个答案:

答案 0 :(得分:1)

在CodeBehind中避免这种情况是错误的,因为在Postback之后Button将被禁用,让你有足够的时间再次点击它。实现此目的的唯一方法是使用javascript。

你这样做:

var button = document.getElementById('yourButton');
button.disabled = true;

答案 1 :(得分:0)

您可以通过单击禁用按钮或使其启用faluse,或者您可以使用按钮附加javascript而不是返回flase来避免这种情况。在这种情况下,它不会执行任何活动。

void grdRules_RowCommand(Object sender, GridViewCommandEventArgs e)
{
    if(e.CommandName=="imagebutton")
    {
      //insert row
      int id = int.Parse(e.CommandArgument.ToString());
      ImageButton imgButton = 
             (ImageButton)grdRules.Rows[id].FindControl("imgButton");      

     imgButton.Visible =false;
    }
}

答案 2 :(得分:0)

如果使用验证器,则在插入新行后重新初始化用于插入的控件(即tbProductName.Text = String.Empty; ddlTitle.SelectedIndex = 0;等)。通过这种方式,验证器将阻止再次重新提交相同的数据。

如果插入在服务器端需要更长时间而您的用户需要等待,请使用JavaScript禁用该按钮。服务器完成操作后,它将发送一个新的响应,您不需要再次启用它(假设服务器端没有禁用该按钮)。