0

行ごとにpdfファイルをダウンロードするための列が1つあるグリッドビューがあります。「window.location.href」を使用して別のページから PDF ファイルを作成およびダウンロードする JavaScript 関数を起動します。現在、いくつかのボタンのClientclickで、forループがgridviewの各行を読み取り、(グリッドでPDFをダウンロードするためにグリッドで使用したボタンの)クリックイベントを発生させて、一度に複数のPDFファイルをダウンロードするjavascript関数を呼び出しています。行。この手法を使用すると、最後の行のみの詳細を含む PDF のみを取得できます。つまり、各行のクリック イベントを発生させた後、PDF を 1 つだけ取得します。

4

1 に答える 1

1

私は次のことを行います:

  1. exchange.js JavaScript ファイルを head セクションに含めます。
  2. ページの読み込み時にエクスチェンジャー オブジェクトを初期化します。theBuffer = new exchanger('dwnld');
  3. ファイルのダウンロードを開始するたびに呼び出す JavaScript 関数を作成します。

     function downloadFile(){
          // you can add parameters to the function as needed to pass in dynamic data sent to the back end download handler
          data = "http://your_backend_file_download_handler.php?param1=val1&param2=val2&etc=whatever";  // send whatever data you need to the php program via query string parameters
          theBuffer.sendData(data);  // initiate the file download
     }
    

    注: リクエストを処理する php バックエンド ファイル ダウンロード プログラムは、ダウンロード用の正しいデータ/ファイルをまとめたり取得したりするために、送信したパラメーターに対して必要なことは何でも行うことができます。多くのことをいじくり回した後、この組み合わせは私にとって一貫して機能するものです

  4. この小さな html を body セクションに含めます。私は通常、body の終了タグの直前に置きます。

     <iframe name="dwnld" id="dwnld" style="width:0;height:0;border:0">
     </iframe>
    
     Note:  the id value assigned to the iframe is the same value given in step 2 when initializing.
    

その結果、実際のダウンロードは別のページ (別名 iframe) で処理されるため、ユーザーが現在のページを離れてファイルをダウンロードすることはありません。私は何年もの間、すべてのプロジェクトで問題なく使用してきました。

于 2013-07-24T12:17:40.983 に答える