主页中更新面板内的C#下载按钮

时间:2017-09-06 13:59:02

标签: c# updatepanel master

我有一个包含母版页的网页表单,该母版页使用更新面板。

问题是,每当我尝试下载文件时,都会收到此错误:

  

无法评估表达式,因为代码已优化或本机框位于调用堆栈之上

这是代码

    Response.ClearContent();
    Response.ClearHeaders();

    Response.AppendHeader("Content-Disposition", 
    string.Format("filename=Relatorio.{0}", "xlsx"));
    Response.ContentType = "application/vnd.ms-excel";
    Response.BinaryWrite(File_Converted_toBytes);
    Response.Flush();
    Response.End();

如果我创建一个新项目,例如,一个web形成一个,只创建一个空白页面,里面有一个带有此代码的按钮,一切运行良好。

有人有什么想法吗?

3 个答案:

答案 0 :(得分:1)

启动下载的按钮必须触发完整的回发。在UpdatePanel中,除非你做这样的事情,否则它是不可能的:

<asp:UpdatePanel runat="server">
    <Triggers>
        <asp:PostBackTrigger ControlID="YourControlID" />
    </Triggers>
    <ContentTemplate>
        .....
    </ContentTemplate>

答案 1 :(得分:0)

您是否尝试在&#34;我的页面&#34;内部访问您的更新面板像这样?

UpdatePanel up = (UpdatePanel)Master.FindControl("updadepanelID");

答案 2 :(得分:0)

解决方案由Cooleshwar评论

ScriptManager.GetCurrent(this.Page).RegisterPostBackControl(‌​
this.YourControlID)