setOptions 不重新绑定网格? kendo ui
setOptions doesn't rebind grid ? kendo ui
我正在尝试使用 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 版本中看到的问题,那将会很有帮助。
我认为这可能是 Kendo UI v2014.2.903
的错误或不受支持的功能(我不确定,我认为您应该 post 在 telerik 论坛上获得实际答案。我是也很好奇)
但是既然你想要一些工作 around/hack。一种方法是按如下方式修改列:
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
我正在尝试使用 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 版本中看到的问题,那将会很有帮助。
我认为这可能是 Kendo UI v2014.2.903
的错误或不受支持的功能(我不确定,我认为您应该 post 在 telerik 论坛上获得实际答案。我是也很好奇)
但是既然你想要一些工作 around/hack。一种方法是按如下方式修改列:
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