0

<asp:Button />一部の aDataTableを Excelにエクスポートするために使用されるaがあります。の生成中に進行状況の画像を表示する必要がありますDataTable。以下はこれに対する私の試みですが、まだ立ち往生しています。ここでのライフサイクルを理解していない可能性があります。どんな助けにも感謝します。
ASPX

<asp:Button ID="ExportResults" runat="server" UseSubmitBehavior="false" Text="Export Selected" OnClientClick="showWaitingForExport();" OnClick="ExportResults_Click"/>

JavaScript

function showWaitingForExport() {
  $("#progressbar").progressbar({ value: false });}

コードビハインド

protected void ExportResults_Click(object sender, EventArgs e)
{
  DataTable resultDT = GenerateDataTable(); //This is the time taking function and after this I need to hide my progressbar while response still not get end

  ScriptManager.RegisterStartupScript(this, this.GetType(), "stopprogress", "$('#progressbar').progressbar('destroy');", true);

        string filename = "Search_Results.xlsx";
        workbook.AddWorksheet(resultDT, "Search Results");
        workbook.SaveAs(Server.MapPath("~/Temp/" + filename));
        Response.ContentType = "application/vnd.ms-excel";
        Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + "");
        Response.TransmitFile(Server.MapPath("~/Temp/" + filename));
        Response.End();
}
4

1 に答える 1

0

私が質問を誤解していない限り、このリンクをチェックしてください - これは、開発者が行う必要があるかなり一般的なことです: http://www.dotnetcurry.com/showarticle.aspx?ID=227

ボタンをクリックすると OnClientClick が呼び出されますが、リクエストはサーバー (OnClick="ExportResults_Click") に送信され、ブラウザー/クライアントは通常の読み込みページ (通常は空白のページ) を表示します。リンクに記載されている戦略のいずれかで UpdatePanel を使用して、更新パネルの進行状況バーを表示できるはずです。これを回避する唯一の方法 (私が認識している) は、非同期ポストバックを使用して、サーバーの処理中にページが引き続き表示されるようにすることです。

これは理にかなっていますか?記事は役に立ちますか?必要に応じて、さらに詳しく説明したり、例を示したりできます。私は、Visual Studio を使用してコンピューターで例をまとめているわけではありませんが、他の誰も回答していない場合は、明日何かを投稿できます。

于 2014-01-22T04:20:43.347 に答える