我在ASP.NET触发按钮单击两次时遇到问题。该按钮位于UpdatePanel内,但是当我单击它时,会得到两次回发,然后单击两次,然后两次调用DAL(按此顺序)。我以前从未遇到过,将AutoEventWireup更改为false无效。我唯一能想到的解决方法是将Web服务的功能隐藏起来,并处理jQuery带来的复杂性,而我宁愿对一个小型项目也不要这样做。

萤火虫转储位于以下位置(这两个操作都只需单击一下即可完成)。

最佳答案

将以下脚本放在ScriptManager之后的页面上。

<script type="text/javascript">
var postbackControl = null;
var parm = Sys.WebForms.PageRequestManager.getInstance();
parm.add_beginRequest(BeginRequestHandler);
parm.add_endRequest(EndRequestHandler);

function BeginRequestHandler(sender, args)
{
 postbackControl = args.get_postBackElement();
 postbackControl.disabled = true;
}
function EndRequestHandler(sender, args)
{
postbackControl.disabled = false;
postbackControl = null;
}
</script>

关于c# - UpdatePanel内的Double PostBack,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6884134/

10-11 15:57