我目前正在尝试使用GridX在我的应用中显示表格数据。我使用JsonRest作为商店,异步缓存和分页。服务器被正确调用并且结果是正确的(例如:items = 10-20,response:items = 10-20 / 30)并且数据是不同的。
但是表格总是在每个页面上只重复显示一行(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();
提前致谢。
答案 0 :(得分:2)
我没有在本地测试过,但是如果你在测试gridx时看看MusicData.js,那么所有数据都没有id数字“column”,但是id列后来被混入。请参阅下面的函数getData粘贴了我指向的相关线。此外,对于商店,您可以指定idProperty,因此如果您不想添加“id”而不想将其称为employeeNumber,您可以使用idProperty:'employeeNumber'并使用下面的相同方法将'id'替换为'employeeNumber' 。你的结构/列结构也不需要添加id,你可以把它保留为:
var columns = [
{name: "AAA", field: "aaa", sortable: false},
{name: "BBB", field: "bbb"}
来自MusicData.js的getData函数:
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;
}