如何强制按钮执行完整回发而不是异步回发

Jag*_*agd 5 asp.net user-controls asynchronous-postback

在ASP.NET 4.0 Web应用程序中,我有一个由UpdatePanel包装的用户控件(请参阅下面的代码).

<asp:UpdatePanel ID="UpdatePanel5" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <UC:MyCustomCtrl ID="customCtrl" runat="server" />
    </ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

显然,这适用于在我的用户控件中导致回发的每个ASP.NET控件,因为它使它异步发生.但是,有一个过程不起作用!

我在用户控件中有一个ASP.NET按钮(Create Report),它向服务器发出异步请求.然后,服务器创建一个Excel电子表格,然后将电子表格放入HttpResponse以发送回客户端的浏览器,以便他们可以打开/保存它.但是,它在这一点上爆炸,因为对服务器的请求是异步的,显然你不能在异步请求期间在HttpResponse中放入二进制文件.

我该如何解决这个问题?

Yur*_*kiy 11

在用户控件的Page_Load方法中将此按钮注册为同步回发控件:ScriptManager.GetCurrent(Page).RegisterPostBackControl(CreateReportButton);