1

csv ファイルを生成してダウンロードを提供するハンドラーがあります。このハンドラーは、defoult.aasp のコード ビハインドのボタンによって次のように呼び出されます。

 Response.Redirect("~/Handler.ashx?startDate="+tbStartDate.Text.Trim()+"&endDate="+tbEndDate.Text+"&isCheck="+chkDuplication.Checked.ToString());

上記のコードの後に​​別の行があり、リスト ビューを更新する必要がありますが、リスト ビューが更新されません。csv のダウンロード後にリスト ビューを更新する方法はありますか。

ありがとう、

4

2 に答える 2

2

問題はリダイレクトにあります。Microsoftのドキュメントから:

元の URL で示されるページに表示される HTML テキストや Response.Write テキストなどの応答本文のコンテンツは無視されます。

必要な処理に応じて、いくつかのオプションがあります。

  1. ファイルを開くためにページをポストバックする必要がない場合は、URL として ashx ページ (クエリ文字列を含む) を使用して、JavaScript で新しいウィンドウを開くことができます (「_blank」をターゲットとする window.open)。 .

  2. ページをポストバックする必要がある場合は、サーバー側で JavaScript を生成し、Page.ClientScript.RegisterStartupScriptを使用して、ページがブラウザーに最初にリロードされたときに実行することができます。

実際には、特定の要件に応じて両方の方法を使用します。一般的に、javascript での作業が少し増えることを意味する場合でも、最初のアプローチを好みますが、ポストバックを回避できない場合があります。

于 2012-07-28T23:13:24.793 に答える
1

現在のページの実行を終了する必要があるかどうかを示す endResponse 属性を使用してみてください。これを false にして、Response.End の下の行が実行されるようにします。

HTTP ハンドラで Response.Redirect メソッドを呼び出し、リクエストを終了せずに別のページにリダイレクトする場合は、endResponse を false に設定します。ソース - http://msdn.microsoft.com/en-us/library/a8wa7sdt(v=vs.90).aspx

   Response.Redirect("url",false);
   // code to update your list view 
于 2012-07-29T00:23:04.943 に答える