将Kendo网格与数据源绑定不会显示数据

时间:2014-03-03 16:29:18

标签: javascript kendo-ui

我正在尝试使用以下参考资料来学习剑道网格。

  1. Grid / Binding to local data
  2. How to use SetDataSource Method of the Kendo UI Grid
  3. How-To: Use the DataSource
  4. How-To: Bind the Grid to Remote Data
  5. 我有一个名为“localDataSource”的数据源。网格需要显示来自此来源的数据。我尝试在kendoGrid定义中定义dataSource: localDataSource。然后我尝试显式设置数据源grid.setDataSource(localDataSource);

    虽然没有javascript错误,但这两种方法都没有呈现数据。这里遗漏的是什么?

    Fiddle

    CODE

    <head>
        <title>Grid with DataSource</title>
        <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <script src="http://cdn.kendostatic.com/2013.2.716/js/kendo.all.min.js"></script>
    
    
        <style type="text/css">
            table, th, td
            {
                border: 1px solid black;
            }
        </style>
    
    </head>
    <body>
    
    
            <div id="example" class="k-content">
    
                <div id="grid">
                AAAA
                </div>
    
                <script>
                    $(document).ready(function () {
    
                        var products = [
                                { title: "Nylon", year: 1977 },
                                { title: "Fabric Material", year: 1980 },
                                { title: "Yards UOM", year: 1983 }
                              ];
    
                        var localDataSource = new kendo.data.DataSource({ data: products });
    
                        //console.log(localDataSource);
    
                        $("#grid").kendoGrid({
                            dataSource: localDataSource,
                            height: 430,
                            columns: [
                                        { field: "Title", title: "Title", format: "{0:c}", width: "130px" },
                                        { field: "Year", title: "Year", width: "130px" }
                                    ]
                        });
    
                        var grid = $('#grid').data("kendoGrid");
                        grid.setDataSource(localDataSource);
                    });
                </script>
    
            </div>
    
    
    </body>
    

2 个答案:

答案 0 :(得分:1)

列的定义错误。字段选项区分大小写,您使用的是大写字母而不是低位字母。

columns: [
         { field: "title", title: "Title", format: "{0:c}", width: "130px" },
         { field: "year", title: "Year", width: "130px" }
]

Fiddle

答案 1 :(得分:1)

Kendo Grid - jsFiddle为此提供了很好的示例代码 - 正是我所寻找的。

以下两种方法

var products = [
                            { FirstName: "Nylon", LastName: 1977 },
                            { FirstName: "Yards", LastName: 1983 }
                          ];

var localDataSource = new kendo.data.DataSource({ data: products })

方法1

          $("#grid").kendoGrid({
                   dataSource: localDataSource,
                   columns: [
                        { field: "FirstName", title: "FirstName" },
                        { field: "LastName", title: "LastName" }
                            ]
                    });

方法2

    var grid = $("#grid").kendoGrid({
    dataSource: localDataSource,
    columns: [
        {field: "FirstName", title: "First Name"},
        {field: "LastName",title: "Last Name"}
             ]    
}).data("kendoGrid");

fiddle 1fiddle 2