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

时间:2018-04-19 18:39:06

标签: javascript asp.net

问题是当用户点击导致浏览器发布到服务器的链接按钮时,在服务器端执行操作需要一些时间(假设在回发期间,它会插入一些记录进入数据库)。因此,与此同时,用户一次又一次地点击了链接按钮,然后很多次页面将被提交给服务器,因此那些许多记录将被插入到数据库中。但问题是,每当用户多次点击链接按钮时,我也只想第一次发回服务器而不是后续请求。 不知怎的,我已经设法在onclientclick中解决了JavaScript函数的问题,但下面是唯一无法正常工作的场景

  1. 每当客户端验证失败时表单未提交,因为ele.disabled设置为true且Testing函数返回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;
    }
    

1 个答案:

答案 0 :(得分:0)

解决方案很简单 - 您在几秒钟后添加计时器以重新启用按钮 - 或者在用户使用鼠标从链接移动鼠标后重新启用它结束事件。

在带有计时器的第一个解决方案中,您会对用户进行一些逮捕,以便在页面上看到错误...

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