2012-02-06 60 views
0

我不想使用ajax在我的網格中加載數據。 Theres是一種將所有數據靜態加載到主網格和子網格的方法?如何靜態加載子網格?

在來自jqGrid Documentation的樣本中,需要參數subGridUrl。但是,我想是這樣的:

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

,並使用MYDATA參數data,但亞格沒有這個參數或者其他什麼東西。

+0

請添加一些細節或代碼... – 2012-02-06 17:59:32

+0

那麼有兩個方法1),你可以把它作爲發起請求的一部分;或者2)在客戶端生成它(取決於數據的性質)。 這是一個微不足道的問題,如果你想避免ajax只是避免它。 – 2012-02-06 18:00:08

回答

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], 
       ... 
      }); 
    });