停止链接按钮 ASP.NET 多次回发



问题是当用户单击导致浏览器发布到服务器的链接按钮时,在服务器端执行操作需要一些时间(假设在回发期间,它会将一些记录插入数据库)。因此,与此同时,用户一次又一次地单击链接按钮,然后多次将页面提交到服务器,因此这些记录将入到数据库中。但问题是,每当用户多次单击链接按钮时,我也只想第一次回发到服务器,而不是在后续请求上。 不知何故,我已经设法解决了 onclientclick 中 JavaScript 函数的问题,但以下是唯一不起作用的情况

  1. 每当客户端验证失败时,表单就不会提交,因为 ele.disabled 设置为 true 并且测试函数返回 false 。验证是通过还是失败并不重要。
  2. 请帮助我实现这种情况..我已经尝试了Page_ClientValidate()并且几乎尝试了所有选项。

    function Testing()
    {
    try
    {
    var retunboolean = true;
    var ele = document.getElementById('<%=linkButtonTesting.ClientID%>');
    if (ele != null && !ele.disabled)
    retunboolean = true;
    else
    retunboolean = false;
    if (ele != null)
    ele.disabled = true;
    }
    catch (err)
    {
    alert(err.description);
    }
    return retunboolean;
    }
    

解决方案很简单 - 添加一个计时器,在几秒钟后重新启用按钮 - 或者在用户使用鼠标悬停事件将鼠标从链接中移动后重新启用它。

在使用计时器的第一个解决方案中,您给用户一些阻止以查看页面上的错误......

使用第二种解决方案 - 当用户从元素中移除鼠标时,您可以立即重新启用它......

最新更新