KendoUI网格不适用于JSON

时间:2013-12-17 13:34:55

标签: asp.net asp.net-mvc asp.net-mvc-4 kendo-ui kendo-grid

我正在尝试将KendoUI(没有服务器包装器)集成到我的ASP.NET MVC应用程序中:

这是HTML文件(只需要代码):

<div id="example" class="k-content">
    <div id="clientsDb">
        <div id="grid" style="height: 380px"></div>
    </div>

    <script>
        $(document).ready(function () {
            $("#grid").kendoGrid({
                dataSource: {
                    type           : "json",
                    transport      : {
                        read       : {
                            url     : "data.json",
                            type    : "POST",
                            dataType: "json"
                        },
                        contentType: "application/json"
                    },
                    schema         : {
                        data : "data",
                        total: "total"
                    },
                    pageSize       : 10,
                    serverPaging   : true,
                    serverFiltering: true,
                    serverSorting  : true
                },
                height    : 430,
                groupable : false,
                sortable  : false,
                pageable  : true,
                columns   : [
                    {
                        field: "PageUrl",
                        title: "PageUrl",
                        width: 140
                    },
                    {
                        field: "Id",
                        title: "Id",
                        width: 190
                    }
                ]
            });
        });
    </script>
</div>

以下是“MyContollerName”的“ActionMethodName”方法返回的JSON结果:

{
    "Data" : [
        { "Id"     : 30, "PageUrl": "http://www.someurl.com" },
        { "Id"     : 29, "PageUrl": "http://www.someurl.com/" },
        { "Id"     : 26, "PageUrl": "http://www.someurl.com" }
    ],
    "Total": 10
}

但没有渲染(渲染网格,结果不是)。获得无限渲染的“加载”图标。你能帮忙吗?

我也遇到以下JS错误:“TypeError:无法调用undefined /Scripts/kendo/2013.3.1119/kendo.web.min.js:13”的方法'slice'

1 个答案:

答案 0 :(得分:3)

在您定义的模式中,当您使用大写字母返回数据时,数据处于名为data(小写)的内容中。

将架构更改为:

schema         : {
    data : "Data",
    total: "total"
},

它会起作用。