btnコントロールをクリックすると、javascriptを使用してbtnを無効にしてから、btnクリックイベント呼び出しを実行します。btnクリックイベント内で、そのためのExcel / pdf形式でレポートを提供するコードを記述します。メソッドExportToHttpResponse(ExportFormatType.Excel、Response、true、 "Report Name")を使用します。これにより、例外が発生するため、このメソッドの後に、または最後に書き込み時にブロックします。 btn.enable = true; または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);
}
}