setOptions不重新绑定网格?剑道ui

时间:2016-06-03 10:16:51

标签: kendo-ui dojo telerik kendo-grid

我正在尝试使用setOptions重新绑定网格,这似乎是一个合适的选项

目前我正在使用Kendo UI v2014.2.903,我正在尝试使用setOptions,但它没有重新加载我的网格。

代码:

<div id="grid"></div>
<script>
    $("#grid").kendoGrid({
        columns: [
          { field: "name" },
          { field: "age" }
        ],
        dataSource: [
            { name: "Jane Doe", age: 30 },
            { name: "John Doe", age: 33 }
        ]
    });

  setTimeout(function(){
    alert('update check')
    var grid = $("#grid").data("kendoGrid");
    grid.setOptions({
       columns: [
          { field: "name" },
          { field: "age" },
         { field: "code" }
        ],
         dataSource: [
            { name: "Jane Doe", age: 30,code:1 },
            { name: "John Doe", age: 33,code:11 }
        ]
    });
    grid.setDataSource([
            { name: "Jane Doe", age: 30,code:1 },
            { name: "John Doe", age: 33,code:11 }
        ]);
  },2000);
</script>

示例 here ,显示问题。

当我将版本更新为2016.2.504时,setOptions似乎可以使用示例 here

如果有人可以帮我解决我在2014版中看到的问题,那将会很有帮助。

1 个答案:

答案 0 :(得分:1)

我认为这可能是Kendo UI v2014.2.903的错误或不支持的功能(我不确定,我认为您应该在telerik论坛上发帖以获得实际答案。我也很好奇)

但是因为你想要一些工作/黑客。一种方法是修改列如下:

var grid = $("#grid").data("kendoGrid");
var ds = grid.dataSource;

grid.columns = [];
grid.thead.remove();
ds.data([{ name: "Jane Doe", age: 30,code:1 },
        { name: "John Doe", age: 33,code:11 }]);

这是working example