1

我目前正在尝试使用 GridX 在我的应用程序中显示表格数据。我使用 JsonRest 作为存储、异步缓存和分页。服务器被正确调用并且结果正确(例如:items=10-20,响应: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();

提前致谢。

4

1 回答 1

2

我没有在本地对此进行测试,但是如果您查看正在为 gridx 测试的 MusicData.js,所有这些数据都没有 id 数字“列”,但是 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;
    }
于 2013-10-22T16:50:10.683 回答