1

asp.netアプリケーションに表示されたり消えたりする「読み込みメッセージ」があります。新しい要件は、リンク ボタンがクリックされたときに読み込み中のメッセージが表示されることです。次に、開く、保存する、またはキャンセルする (Excel ファイル) ために Excel ダイアログが表示されると、メッセージが消えることが想定されています。

このダイアログを検出するにはどうすればよいですか? ポストバックが発生し、Response.End を使用していますが、Excel のダイアログ ボックスを操作した後に「読み込み中のオーバーレイ レイヤーが消える」を取得できないようです。

これは ASP.NET 3.5 / EXT JS (EXT.NET) で発生していますが、このプロジェクトにある jQuery を使用できます。私は Fiddler で遊んでいましたが、DOM でのイベントの発生と検出の操作に少し慣れていません。どんな助けでも大歓迎です。

4

1 に答える 1

0

しばらく前に同じ問題を抱えていたかもしれません。これがスタック投稿です...

ファイルをダウンロードしてパネルの進行状況を更新する

このページのコード ビハインドで長時間実行される作業を行うと、更新パネルは期待どおりに機能します。イベントのライフ サイクルは次のようになります。

  1. btnEvent は、Excel ファイルを取得/ビルドします。
  2. btn イベントの背後にあるコードで、Excel ファイルを構築/取得してキャッシュに保存する作業を行います...次に、iframe のソースを、(キャッシュから) ダウンロードとして Excel を提供するページに設定します。更新パネルには、この間ずっと進行状況の html が表示されています。
  3. HTML が更新されると、ロード パネルが消え、ダウンロード ファイルのプロンプトが iframe から表示されます。

更新パネルを使用してこれを機能させるために、JavaScript を記述する必要はありませんでした。

<asp:UpdateProgress ID="progress1" runat="server" AssociatedUpdatePanelID="up">
    <ProgressTemplate>
        <div id="processMessage">
            <table width="100%">
                <tr>
                    <td>
                        Loading...
                    </td>
                    <td>
                        <img alt="Please wait..." src="../Images/spinner.gif" />
                    </td>
                </tr>
            </table>
        </div>
    </ProgressTemplate>
</asp:UpdateProgress>


<asp:UpdatePanel runat="server" ID="up">
    <ContentTemplate>
            <div id="excel" align="right">
                <asp:Button runat="server" ID="btnExcelExport" Text="Export to Excel" OnClick="btnExcelExport_Click" />
            </div>
            <iframe runat="server" id="ifmExcel" width="0" height="0" marginheight="0" marginwidth="0" frameborder="0" />
    </ContentTemplate>
</asp:UpdatePanel>

これは絶対に javascript と ajax 呼び出しで beforeSend イベントと complete イベントを使用して実行し、作業が完了している間にスピナーを表示し、完了したら iframe の src 属性を変更してダウンロードを開始することができます。

お役に立てれば。

于 2013-03-30T03:04:45.577 に答える