2012-01-26 9 views
1

loadonceオプションをjqGridで使用して、データベースからデータを取得しています。レコードの数はそれほど大きくはない(数百)が、画面全体で見るには大きすぎます。私は改ページを使用する必要があります。クライアント上のすべてのレコードをどのように反復するのですか?私はgetDataIDsを使うことができると知っていますが、それは一度に画面上にあるすべてのレコードを私に与えるだけです。私は見ましたが、私はまだサーバー側以外のすべてのデータを表示する方法を見つける必要があります。jqGridキャッシュ内のすべてのアイテムを反復処理する方法

答えて

1

あなたがの

var idsToDataIndexes = $("#grid").jqGrid('getGridParam', '_index'); 

IDを使用することができますgridData配列内のすべての行のIDと対応するインデックスを取得するには

var gridData = $("#grid").jqGrid('getGridParam', 'data'); 

のようなコードで、すべてのローカルデータを取得することができますグリッドはidsToDataIndexesfor (var id in idsToDataIndexes)で列挙可能)のプロパティになり、プロパティの値はgridData配列のインデックスになります。

+0

このようにデータを繰り返し処理することができますか?for(var i in gridData){...} idsToDataIndexesなし? – kozla13

+0

@ kozla13:データのみが必要で、そのrowid *がなければ、配列 'gridData'を反復することができます。それにもかかわらず、 'for(var i in gridData){...} 'の使い方は非常に悪いです。 JavaScriptにはルールとオブジェクトの継承があります。あなたは 'var i、l = gridData.length;を使うべきです。 for(i = 0; i <1; i ++){.../*ここでgridData [i]を使うことができます*/...} ' – Oleg