禁用按钮不在UpdatePanel中提交回发

我在ASP.NET页面上的UpdatePanel有一个按钮。 这是我的UpdatePanel

   

当我尝试禁用OnClientClick按钮时,它不执行PostBack

这是我的PDFClick()函数的示例

 // Works (does post back and code behind executes))  function PDFClick() { document.getElementById("btnPrint").value = "Working..."; return true; };  // Doesn't work (JS executes, but code behind didn't execute)  function PDFClick() { document.getElementById("btnPrint").value = "Working..."; document.getElementById("btnPrint").disabled = true; return true; };  

这是我背后的代码。 我需要在背面做一些东西,并在完成后打开新窗口:

 protected void btnPrint_Click(object sender, EventArgs e) { Response.Write(""); Response.Write(String.Format("window.open('{0}','_blank')", ResolveUrl("PrintPage.aspx"))); Response.Write(""); } 

请告知我如何禁用我的按钮并在后面找到代码。

谢谢!

您可以使用setTimeout异步禁用该按钮:

  

通过在OnClientClick使用this关键字传递对button元素的引用,可以从PDFClick删除对document.getElementById的调用:

 OnClientClick="if (PDFClick(this)) { return true; } else { alert('2'); }" 

在按钮上添加ClientIDMode="Static"