2017-04-27 11 views
0

無料のjqgrid 4.14を使用しています。グリッドのデータをCSV/Excelにエクスポートする必要があります。私はすでにすべてのデータをCSVにエクスポートする機能を作っています。 私は、サーバーからのデータをキャプチャし、そのデータを使ってCSVを形成しています。しかしここで問題は、グリッドからどのようにフィルタリングされたデータだけを得るかということです。そのための既定のプロパティまたは関数はありますか?私が正しくあなたの問題を理解していれば、あなたはlastSelectedDataパラメータの代わりに、dataパラメータを使用する必要がありますフィルタリングされたデータをjqgridからCSVにエクスポート

function convertor (gridData, scopes, ShowLabel, fileTitle,grid_header_column_value,id) { 


     scopes.grid_header_columns = scopes.grid_header_column_value[id]; 
     var bg = "<button class='btnfilter' />"; 
     for (var i = 0; i < scopes.grid_hidden_columns[id].length; i++) { 
      if (includes(scopes.grid_header_columns,scopes.grid_hidden_columns[id][i]) == true) { 
       var indexhed = scopes.grid_header_columns.indexOf(scopes.grid_hidden_columns[id][i]); 
       scopes.grid_header_columns.splice(indexhed, 1); 
      } 
     } 
     var arrData = typeof gridData != 'object' ? JSON.parse(gridData) : gridData; 
     var CSV = ''; 
     if (ShowLabel) { 
      var row = ""; 
      var count = 0; 
      if (fileTitle != "") 
      { 
       var htmltext = fileTitle.split(','); 
       for (var jj = 0; jj < htmltext.length; jj++) 
       { 
        var datacont = document.getElementById(htmltext[jj]); 
        if (datacont == undefined) 
         datacont = ''; 
        else 
         datacont = datacont.textContent + '\r\n'; 
        CSV += datacont; 
       } 
      } 
      for (var index in arrData[0]) { 
       var a = scopes.gridextra.indexOf(index); 
       if (a == -1 && scopes.grid_header_columns[count] != undefined) { 
        row += scopes.grid_header_columns[count].replace(bg, "") + ','; 
        count++; 
       } 
      } 
      row = row.slice(0, -1); 
      CSV += row + '\r\n'; 
     } 

     for (var i = 0; i < arrData.length; i++) { 

      var row = ""; 
      for (var index in arrData[i]) { 

       var a = scopes.gridextra.indexOf(index); 

       if (a == -1) { 
        if (isNaN(arrData[i][index]) == false) { 
          if(arrData[i][index]<0) { 
           if(arrData[i][index] == -2) 
            arrValue = '="'+"*"+'"'; 
           else 
            arrValue = '="'+"N/A"+'"'; 
          } 
          else 
           var arrValue = arrData[i][index] == null ? "" : '="' + arrData[i][index] + '"'; 
        } 
        else 
          var arrValue = arrData[i][index] == null ? "" : '="' + arrData[i][index] + '"'; 
         row += arrValue + ','; 
       } 
      } 
      row.slice(0, row.length - 1); 
      CSV += row + '\r\n'; 
     } 
     if (CSV == '') { 
      growl.error("Invalid data"); 
      return; 
     } 
     csvData = CSV;  
    } 

答えて

0

-

この

は私の関数です。 dataパラメータには元のデータが含まれています。 lastSelectedDataパラメータには、 のフィルタリングされ並べ替えられたデータ(すべてのページ)が含まれています。私が the answerのために作成したデモを見てください。

+0

ありがとうございました:) – shv22

+0

@ shv22:ようこそ! – Oleg

+0

グリッドにフィルタリングがない場合、lastSelectedDataパラメータは空のままですか? – shv22

関連する問題