2017-01-03 4 views
1

ページングに関係なく可視列のすべてのjqGridデータを取得する方法があるかどうかを知りたいと思います。ページングに関係なく表示列のみを持つべきすべてのjqgridデータをエクスポートする方法

$("#listTableSupply").jqGrid("getGridParam", "data"); 

しかし、私はjqgridに渡したすべてのjsonデータを表示します。使用するとjqgridでページングを使用するので、

$('#list').jqGrid('getRowData'); 

私は1st Pageのレコードのみを取得します。

ページングに関係なく表示可能な列を持つすべてのデータを取得する必要があることを知る必要があります。

答えて

0

getGridParamdataの使用が正しい方法です。アイテムまたは配列からいくつかのプロパティを削除する必要がある場合は、配列の詳細コピー($.extend(true, {}, data)の使用)を行い、配列の各項目から不要なプロパティを削除する必要があります。

また、非表示列を含むすべてのプロパティを新しい配列にコピーすることもできます。コードは以下について次のようになります。

// get the reference to all parameters of the grid 
var p = $("#listTableSupply").jqGrid("getGridParam"); 

// save the list of all non-hidden columns as properties of helper object 
var colNames = {}, i, cm; 
for (i = 0; i < p.colModel.length; i++) { 
    cm = p.colModel[i]; 
    if (cm.hidden !== true) { 
     colNames[cm.name] = true; 
    } 
} 
// We have now colNames object with properties, 
// which correspond to non-hidden columns of the grid 

// Make copy of p.data including only non-hidden columns 
var newData = new Array(p.data.length), prop, newItem, item; 
for (i = 0; i < p.data.length; i++) { 
    item = p.data[i]; 
    newItem = {}; 
    for (prop in item) { 
     if (item.hasOwnProperty(prop) && colNames[prop]) { 
      // fill only properties of non-hidden columns 
      newItem[prop] = item[prop]; 
     } 
    } 
    newData[i] = newItem; 
} 

私は上記のコードをテストしていないが、私はそれはあなたが必要とするデータとnewData配列を埋める願っています。 UPDATED

私はlastSelectedData代わりのdataの使用法を示している、あなたのためのthe demoを作成しました。結果の配列newDataに、表示されている列のみを含む、グリッドのフィルタリングされた項目が書き込まれます。データをフィルタリングしてから、[フィルタリングされソートされたデータの非表示フィールドを表示する]ボタンをクリックします。デモはnewData配列を塗りつぶして表示します。私はclickハンドラの内部で次のコードを使用しました:

+0

ありがとうOleg。 jqgridでデータをフィルタリングすると動作しますか?フィルタリングが完了したらフィルタデータのみを表示する必要があります。 – user1268130

+0

@ user1268130:ようこそ!フルデータの代わりにフィルタリングされたデータを使用する必要がある場合、 'data'の代わりに' lastSelectedData'からデータを取得する必要があります([古いデモ](http://www.ok-soft-gmbh.com/jqGrid/ OK/GetFilteredData.htm)と[回答](http://stackoverflow.com/a/31568275/315935)と[この古いもの](http://stackoverflow.com/a/9831125/315935)) – Oleg

+0

ありがとうオレグ。今それをチェックします。 :) – user1268130

関連する問題