0

私は次のことをするボタンを持っています:

Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.csv");
Response.Charset = "";
Response.ContentType = "application/text";
//my content is created
Response.Output.Write(sb.ToString());
Response.Flush();
Response.End();

これは私のボタンの定義です:

<asp:Button ID="Button1" runat="server" onclick="Excel_Click" Text="Export to Csv" onclientclick="ShowModal();"/>

ご覧のとおり、私はjavascript関数を呼び出します。この関数は次のことを行います。

function ShowModal() {
        var divmodal = document.getElementById("divModal");

        divmodal.style.display = '';
    }

つまり、「Loading」というラベルの付いたモーダルウィンドウが表示されます。ファイルをダウンロードすると、csvが生成されますが、その後もモーダルウィンドウが表示されます。これは、ページが更新されていないためです。

何か私にできることはありますか?

前もって感謝します

4

1 に答える 1

2

簡単に言えば、それはできないということです。

ボタンを押して投稿した後、新しいコンテンツが読み込まれるのを待っているページが表示されます。現時点では、コードビハインドから現在のページdomを制御することはできません。たとえば、実行するjavascriptコードを送信します。

フルページを返送しても、新しいフルページになります。

他のトリックを作成することもできます。たとえば、ハンドラーを使用してファイルとリンクをダウンロードしたり、ajaxを使用してコマンドを送信し、ハンドラーへのリンクを付けて戻ったりすることができます。それを行う。

于 2012-11-08T19:18:06.167 に答える