导致TypeError r的Kendo Grid本地数据源未定义

时间:2014-03-19 13:07:48

标签: jquery kendo-ui kendo-grid

我正在创建一个使用此代码的本地数据的kendo网格。

var jsondata = [{
    abc: "Star Wars: A New Hope",
    def: 1977,
    ghi: 1977,
    jkl: 1977,
    mno: 1977,
    pqr: 1977
}];

$("div#@code").Grid({
    dataSource: {
        data: jsondata,
        schema: {
            model: {
                fields: {
                    abc: { type: "string" },
                    def: { type: "number" },
                    ghi: { type: "number" },
                    jkl: { type: "number" },
                    mno: { type: "number" },
                    pqr: { type: "number" }
                }
            }
        },
        pageSize: 20
    },
    height: 430,
    scrollable: true,
    sortable: true,
    filterable: true,
    pageable: {
        input: true,
        numeric: false
    },
    autoBind: true,
    columns: [
            { title: 'abc', field: 'abc' },
            { title: 'def', field: 'def' },
            { title: 'ghi', field: 'ghi' },
            { title: 'jkl', field: 'jkl' },
            { title: 'mno', field: 'mno' },
            { title: 'pqr', field: 'pqr' },
       ],
    });

.Grid是kendoGrid函数的扩展,因为我需要自定义网格。在这个功能里面,我打电话给

//     Initialize the grid.
kendo.ui.Grid.fn.init.call(that, element, options);

当我测试代码时,浏览器给我TypeError r未定义。在我做了我的研究后,它是关于kendo网格尝试调用dataSource更新方法,当然不存在,因为我使用的是本地数据源。

我是否错过了将kendo网格设置为不读取远程数据源并只使用本地数据源的选项?

仅供参考,如果数据源是远程的,网格不会抛出错误并且工作正常。

1 个答案:

答案 0 :(得分:2)

我将您的代码复制粘贴到jsbin http://jsbin.com/qowilugo/1/edit。 我只需要从

更改代码的一行
$("div#@code").Grid({

进入

$("div#code").kendoGrid({

因为Grid函数,如您所解释的,是您创建的扩展/自定义jquery函数。并且jsbin代码工作正常。

您需要调试扩展/自定义jquery函数。也许有一部分代码不符合本地数据源,例如,设置serverPaging,serverGrouping,传输选项。