2017-07-12 3 views
1

exporterAllDataFnイベントは、複数のページがある場合にのみ発生します。ページサイズを縮小し、 1つのページだけが起動しません.exporterAllDataFnには、毎回実行する必要のあるコードがあります。エクスポートする前にいくつかのコードを実行するためのソリューションや他の方法はありますか?ui-gridでcsvにエクスポート:exporterAllDataFnは、複数のページがある場合にのみ発生します。

答えて

0

あなたはCSVのダウンロードを扱うことができる新しい関数を呼び出すためにそれを使用することができます:

exporterAllDataFnを:機能(){

   $scope.downloadCSV(); 

}

、ここでcsvファイルを取り扱います。

$scope.downloadCSV = function() { 


      paramsObj['query'] = $scope.keyword; 

      $scope.downloadCSVPromise = Material.query(paramsObj, function (response) { 

       if (response && response.partSearchList && response.partSearchList.length > 0) { 

        $scope.noData = false; 

        $scope.numFound = response.numFound; 

        **var csv = JSON2CSV(response.partSearchList);** 
        //window.open("data:text/csv;charset=utf-8," + escape(csv)) 

        if (window.navigator.msSaveOrOpenBlob) { 
         var blob_ie = new Blob([decodeURIComponent(encodeURI(csv))], { 
          type: "text/csv;charset=utf-8;" 
         }); 
         navigator.msSaveBlob(blob_ie, 'FileName.csv'); 
        } 

        var date = new Date(); 
        var today = date.toString().substr(4,20); 
        var regex = new RegExp(" ", 'g'); 
        today = today.replace(regex, '_'); 
        var fileNm = 'AGSExtract_'+today+'.csv'; 

        var downloadLink = document.createElement("a"); 
        var blob = new Blob(["\ufeff", csv]); 
        var url = URL.createObjectURL(blob); 
        downloadLink.href = url; 
        downloadLink.download = fileNm; 

        document.body.appendChild(downloadLink); 
        downloadLink.click(); 
        document.body.removeChild(downloadLink); 

       } else { 

        $scope.noData = true; 
       } 
      }); 

     }; 

上記の解決策は、サーバーサイドのフルデータ用です.cを使用している場合lient side paginationを実行し、JSON2CSVをチェックし、テーブル・データを持つ$ scope変数を渡します。このことができます:)

+0

私の問題は、我々は1ページ –

+0

を持っているときexporterAllDataFnコードでも発生しませんということです

ホープあなたのコードを表示するplunkerまたはjsfiddleを作ることができますし、私が実装しているので、私は助けることができるかもしれ同じで、滑らかなシルクを演出します。 – GOK

関連する問題