2011-08-12 15 views
1

ボタンをクリックすると、レポートをExcelファイルにエクスポートしています。ユーザーがボタンをクリックすると、「レポートが生成されています..」というメッセージが表示されます。レポートを生成した後、私はそのメッセージを隠したいと思う。しかし、私はResponse.End()を使っているので、メッセージは隠れていません。誰も私はどのようにサーバー側またはJavaスクリプトコードResponse.End()の後に呼び出すか、私に何か他の方法を示唆することができますか?Response.End()の後にラベルテキストを変更します

+0

私はかつて同じ問題を抱えていました。解決策が見つかりませんでした。 – gsharp

答えて

3

通常、このために、データストリームだけを含むポップアップのような種類の2番目のページを開きます。そのため、ブラウザはファイルを保存または開くことを提案します。

これは別のResponseオブジェクトで行われているため、メインのレスポンスオブジェクトを閉じたり終了したりすることなく制御できます。

いくつかのコードを表示して、今やっているところを見てみましょう。

+0

私は同じページにしたい、あなたは同じページにしてplsの上にあるいくつかのソリューションを提案することができます場合。 –

1

ajaxを使用します。

$.ajax({ 
    type: 'POST', 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 
+0

私はこの問題のためにajaxを使用する方法を私に例を挙げることができます、私はajaxを使ったことはありません。それは大きな助けになるでしょう。 –

0

Davideのソリューションに似ています。私たちは新しいページを開いてこれを解決しました。

Report.aspxという1つのページがあると仮定すると、「excel to excel」ボタンが表示されます。もし、何らかの理由で、あなたは静的メソッドにその機能を抽出することができない、あなただけのこれを行うことができます。ユーザーがボタンをExcelにエクスポートする上でクリックしたときに、あなたのページで

を:

  1. 作成幅/高さIFRAME:1pxの/ 1pxの
  2. それが持っている、レポートReport.aspxのpage.loadまたはpage.prerender上
  3. を生成するために必要なすべてのパラメータにパスを除いて、ページのURLを設定しますパラメータを使用してレポートを実行し、ストリーム上に吐き出します。

この方法では、あなたのページはまだ生きています。

関連する問題