1

我有一个我认为非常微不足道的问题,但几天来一直让我感到沮丧。

<div id="grid"></div> 
<script>
    $(function() {
        $("#grid").kendoGrid({
            dataSource: {
                transport: {
                    read: "http://localhost/public/ajax/user/cultures.json",
                    pageSize: 10,
                    dataType: "jsonp"
                }
            },
            schema: {
                data: "data"
            },
            columns: [
                { field: 'oname' },
                { field: 'oculture_code' }
            ],
            height: 500,
            scrollable: true,
            selectable: true,
            sortable: true
        });
    });
</script>

我从服务器收到的数据中收到的数据样本是:

{
    "total":136,
    "data":
    [
         {"oculture_code":"af-ZA","oname":"Afrikaans - South Africa"},
         {"oculture_code":"ar-AE","oname":"Arabic - United Arab Emirates"},
         {"oculture_code":"ar-BH","oname":"Arabic - Bahrain"},
         ...
    ]
    ...
}

上面的内容不起作用,因为网格最初会进行一些处理,但最终它看起来是空的。我尝试了回应:

[{"oculture_code":"af-ZA","oname":"Afrikaans - South Africa"}, ...]

并且不使用架构,并且网格中填充了数据。用后面的数据添加模式也仍然有效。当我修改 json 响应时出现问题。

我希望使用架构,因为我计划添加服务器端分页。但这阻止了我前进。我做错了什么吗?

提前致谢!

4

1 回答 1

1

错误是您在schema外部定义dataSource,而它是DataSource定义的一部分。它应该是:

$("#grid").kendoGrid({
    dataSource: {
        transport: {
            read    : "cultures.json",
            pageSize: 10,
            dataType: "jsonp"
        },
        schema    : {
            data : "data"
        }
    },
    columns   : [
        { field: 'oname' },
        { field: 'oculture_code' }
    ],
    height    : 500,
    scrollable: true,
    selectable: true,
    sortable  : true
});
于 2013-06-02T18:31:14.000 回答