2012-03-17 13 views
3

私はJavaScriptを使用して、クライアント側の私のJQGridにいくつかの行データを追加している:コードビハインド内のJQGridのすべての行データを取得しますか?

var grid = jQuery("#<%= JQGridMembers.ClientID %>"); 
var rowKey = grid.getGridParam("selrow"); 
var newRow = [{ ID: memberId, FullName: memberFullName, Percent: parseInt(percent)}]; 
grid.addRowData(memberId, newRow); 

上記のコードではうまく動作しますが、どのように私はコードビハインドで(JQGridに)全て挿入された行のデータを得ることができますか?

+0

を使用して終了するものです他の方法はありません。唯一のユースケースは、*に沿って新しい行*を取得する場合です。たとえば、ユーザーが「追加」ボタンを明示的にクリックして新しいデータを追加した場合などです。多くの行*を取得し、古いcontainsをクリアしてグリッドに新しいデータを挿入する必要がある場合は、 'addRowData'の使い方が間違った(最も遅い)方法になります。 – Oleg

答えて

11

あなたは最後の方法だけdatatypeローカルまたはloadonce: trueの場合に使用することができます

var myData = grid.jqGrid('getRowData'); 

または

var myData = grid.jqGrid('getGridParam', 'data'); 

のに関してによりグリッドからすべての行を取得することができます。現在のページだけでなく、すべてのページのすべてのデータを返します。

getRowDataメソッドは、グリッドのすべてのセルからのデータを読み取るために、unformatterをに使用します。私はあなたがそれが*本当に必要な場合は、 `addRowData`を使用していないお勧めします*:

+0

loadonceがtrueに設定されていると、現在のページのみのデータを取得する方法はありますか? – mrshickadance

+1

@mrshickadance:まず現在のページからすべての 'id'値を取得できます。例えば、 'getDataIDs'を使うことができます。次に、 'getLocalRow'メソッドを使ってROWIDに対応するすべてのデータ項目を取得できます。たとえば、結果を空の配列にプッシュし、すべてのデータ項目に 'id'プロパティを追加できます。あなたは完全な情報を持っています。 – Oleg

4

以下、同様の問題が発生していたが、私はちょうど1人の発言

var data = $("#table-id").jqGrid('getGridParam', 'data'); 
for (var i = 0; i < data.length; i++) { 
    var f_name = data[i].FirstName; 
    var l_name = data[i].LastName; 
    // blah... blah.. 
} 

Reference

関連する問題