2011-07-21 19 views
0

私のアプリケーションでは、いくつかのボタンでupdatepanelを持っています。これらのボタンの1つは「エクスポート」ボタンです。クリックすると、ローカルコンピュータにレポートをダウンロードできます。ダウンロード後にupdatePanelのボタンが動作しない

btnSave = new Button 
{ ID = "btnSave", CausesValidation = false, Text = "Save", CommandName = CommandNames.SaveToCSV }; 
Controls.Add(btnSave); 
ScriptManager.GetCurrent(Page).RegisterPostBackControl(btnSave); 

をして、それをクリックした後に、このコードが実行されます:

ボタンは、この方法で作成され

string csv = GenerateReport(); 
Page.Response.Clear(); 
Page.Response.Buffer = true; 
Page.Response.ContentType = "text/csv"; 
Page.Response.AppendHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); 
Page.Response.Write(csv); 
Page.Response.End(); 

のダウンロードも更新パネルでcorectly動作します。私の問題は、最初に[エクスポート]ボタンをクリックした後、すべてのボタンが動作を停止する - サーバーに何も送信しないページがある - フィドラーでチェックされていることです(ただし、クライアントのjavascrptsは正しく動作します)。 誰もこの問題を解決する方法を知っていますか?おそらく、更新パネルからデータをダウンロードする別の方法があります(私は更新パネルからこのボタンを削除できません)。

+0

あなたは(あなたの非同期ボタンがクリックされた後、シオマネキに応答内容何をしている)私の答えを試してみましたか?私は問題が何であったか知りたいと思っています... –

答えて

1

\ HTTPハンドラ

+0

良い解決策、ありがとう。 –

0
これがなぜ起こるか私はわからないんだけど、迅速な回避策は、ターゲット= _blankで簡単なのhrefにダウンロードボタンを変更することで、専用ページへのCSV生成コードを移動することができます

UpdatePanelは非同期ポストバックの後に有効なデルタを期待していますが、CSVファイルを送信しています。私の推測では、例外が静かにスローされているが、部分的なポストバックのために黄色い画面が表示されないということです。 Fiddlerは黄色い画面のような応答を表示しますか(Fiddlerの応答内容を見てください)?

(それは私が上述の問題を回避しているためuser4537の回避策が動作します。)

関連する問題