2012-02-06 9 views
0

私のグリッドにデータをロードするためにajaxを使いたくありません。すべてのデータをメイングリッドとサブグリッドに静的にロードする方法はありますか?サブグリッドを静的にロードするには?

jqGridドキュメンテーションのサンプルでは、​​パラメータsubGridUrlが必要です。しかし、私は何かしたい:

var mydata = [ { 
// ... some static code for data creation here 
} ] 

とパラメータdataでMYDATAを使用しますが、サブグリッドは、このパラメータまたは何か他のものを持っていません。

+0

いくつかの詳細やコードを追加してくださいが... –

+0

はまあ1)あなたは元の要求の一部としてそれを渡すことができる2つの方法があります。または2)(データの性質に応じて)クライアント側で生成する。 あなたはそれを避けるだけのajaxを避けたいのですが、それは些細な疑問です。 –

答えて

2

subgrid as gridを使用する場合は、subGridRowExpandedコールバック内に新しいグリッドを作成する必要があります。コールバックはrowidをパラメータとして取得します。したがって、サブグリッドのパラメータdataとして使用できるデータの配列を取得する場合、サブグリッドはdatatype: 'local'で定義できます。

コードスキーマ以下程度とすることができます

var mainGridData = [ 
     {id: 'm1', ...}, 
     {id: 'm2', ...}, 
    ], 
    subgridData1 = [ 
     {id: 's11', ...}, 
     {id: 's12', ...}, 
    ], 
    subgridData2 = [ 
     {id: 's21', ...}, 
     {id: 's22', ...}, 
    ], 
    subgridByMainGridId = { 
     m1: subgridData1, 
     m2: subgridData2 
    }; 

    $('#mainGrid').jqGrid({ 
     datatype: 'local', 
     data: mainGridData, 
     .... 
     subGrid: true, 
     subGridRowExpanded: function(subgridId, rowId) { 
      var subgridTableId = subgridId + "_t"; 

      $("#" + $.jgrid.jqID(subgridId)).html('<table id="' + 
       subgridTableId + '"></table>'); 
      $("#" + $.jgrid.jqID(subgridTableId)).jqGrid({ 
       datatype: 'local', 
       data: subgridByMainGridId[rowId], 
       ... 
      }); 
    }); 
関連する問題