0

当我单击 btn 控件时,使用 javascript 禁用 btn,然后 btn 单击事件调用。在 btn 点击事件中,我编写了代码,它给了我 excel/pdf 格式的报告,我使用方法 ExportToHttpResponse(ExportFormatType.Excel, Response, true, "Report Name") 这给了我异常,所以在这个方法之后或者当我写的时候最终阻塞btn.enable=真;或使用 javascript 然后不执行。异常是无法评估表达式,因为代码已优化或本机框架位于调用堆栈顶部

即我必须在生成报告时启用 btn。当这个方法被执行时 ExportToHttpResponse() 我得到了报告所以在这个方法之后我必须启用 btn 控制

protected void Page_Load(object sender, EventArgs e)
{
    btnExcel.Attributes.Add("onclick", " this.disabled = true; " + ClientScript.GetPostBackEventReference(btnExcel, null) + ";");
}


protected void btnExcel_Click(object sender, EventArgs e)
{
   view_report();
    try
    {
       Rpt.ExportToHttpResponse(ExportFormatType.Excel, Response, true, " Reportname");
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
        ex = null;
    }
    finally
    {                  
       btnExcel.Enabled = true;
        ScriptManager.RegisterClientScriptBlock(Page, this.GetType(), "CallJSFunction", "myEnablefunction()", true);
    }
}
4

1 回答 1

0

如果直接写入响应,所有的 asp.net 结构都被破坏了,所以你不能改变控件的属性,因为你已经干扰了 asp.net 的“自然”呈现。如果在导出过程中出现错误,则页面已损坏。

于 2012-06-13T15:59:41.407 回答