2013-10-04 47 views
1

我目前正在嘗試使用GridX在我的應用程序中顯示錶格數據。我使用JsonRest作爲商店,異步緩存和分頁。服務器被正確調用並且結果正確(例如:items = 10-20,response:items = 10-20/30)並且數據是不同的。GridX需要數字ID嗎?

但是表格總是在每個頁面上重複顯示一行(10次,如果頁面大小爲10)。 GridX的模型非常複雜,但我似乎需要某種行標識符(我在某處讀過它應該是數字)。我的應用程序根本沒有這個數據數字標識符。有沒有可能使用gridX,或者我有一些配置錯誤?

var store = new JsonRest({target: activitiesResource}); 
var columns = [ 
    {name: "AAA", field: "aaa", sortable: false}, 
    {name: "BBB", field: "bbb"} 

]; 


//Create grid widget. 
var grid = new Grid({ 
    id: 'grid', 
    cacheClass: Async, 
    pageSize: 25, 
    autoHeight: true, 
    store: store, 
    cacheSize: -1, 
    structure: columns, 
    modules: [ 
     Pagination, 
     PaginationBar 
    ] 
); 

//Put it into the DOM tree. Let's assume there's a node with id "gridContainer". 
grid.placeAt('htmlGrid'); 

//Start it up. 
grid.startup(); 

在此先感謝。

回答

2

我沒有本地測試這一點,但如果你看看MusicData.js下測試的gridx,所有這些數據不具有ID數字「列」,然而在ID列在後面的混合。參見功能的getData,下面我粘貼了我指向的相關專欄。另外,對於商店,您可以指定idProperty,因此如果您不想添加「id」,而是想將其稱爲employeeNumber,則可以使用idProperty:'employeeNumber'並使用下面的同樣方法將'id'替換爲'employeeNumber' 。另外你的結構/列結構並不需要有添加到它的ID,你可以把它作爲:

var columns = [ 
    {name: "AAA", field: "aaa", sortable: false}, 
    {name: "BBB", field: "bbb"} 

的getData從MusicData.js功能:

getData: function(size){ 
     size = size === undefined ? 100 : size; 
     var data = { 
      identifier: 'id', 
      label: 'id', 
      items: [] 
     }; 
     for(var i = 0; i < size; ++i){ 
      var item = items[i % items.length]; 
      data.items.push(lang.mixin({ 
       id: i, 
       order: i + 1, 
       Color: new Color([Math.sin(i) * 100, Math.cos(i) * 100, i * i]).toHex() 
      }, item)); 
     } 
     return data; 
    }