Kendo ui 剑道淘汰赛:更改剑道ui网格中的选项集(使用数据源)

Kendo ui 剑道淘汰赛:更改剑道ui网格中的选项集(使用数据源),kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我正在使用剑道击倒库。网格绑定到可观察的选项集。此可观察项由包含可观察数据数组和列定义的选项集“heroes”初始化 点击按钮后,可观测数据将被另一个选项集“cars”填充,其中包含另一个可观测数据数组和另一个列定义 但是网格仍然显示英雄而不是汽车 代码情况非常简单: 更改数据源 var ViewModel=函数(){ var self=这个; //第一数据源 self.heroses=ko.observearray({姓名:ko.observeable(“蜘蛛侠”),年龄:ko.observe

我正在使用剑道击倒库。网格绑定到可观察的选项集。此可观察项由包含可观察数据数组和列定义的选项集“heroes”初始化

点击按钮后,可观测数据将被另一个选项集“cars”填充,其中包含另一个可观测数据数组和另一个列定义

但是网格仍然显示英雄而不是汽车

代码情况非常简单:

更改数据源
var ViewModel=函数(){
var self=这个;
//第一数据源
self.heroses=ko.observearray({姓名:ko.observeable(“蜘蛛侠”),年龄:ko.observeable(“29”)},{姓名:ko.observeable(“蝙蝠侠”),年龄:ko.observeable(“55”)},{姓名:ko.observeable(“绿巨人”),年龄:ko.observeable(“40”);
//第二数据源
self.cars=ko.observearray([{车型:ko.observeable(“Z8”),制造商:ko.observeable(“宝马”),国家:ko.observeable(“德国”)},{车型:ko.observeable(“911”),制造商:ko.observeable(“保时捷”),国家:ko.observeable(“德国”),{车型:ko.observeable(“S600 AMG”),制造商:ko.observeable(“梅赛德斯”),国家:ko.observeable(“德国”);
//可观察选项(网格绑定到的位置)
self.options=ko.observable();
//第一个数据源的选项
self.heroptions={data:self.heros,列:[{title:'Hero',字段:'name'},{title:'Age',字段:'Age'}]};
//第二个数据源的选项
self.carOptions={data:self.cars,列:[{title:'Car',字段:'model'},{title:'Producer',字段:'manufacturer'},{title:'Country',字段:'Country'}]};
//设置初始网格选项
self.options(self.heroptions);
//方法将网格绑定到第二个数据源
self.changeDataSource=函数(){
self.options(self.carOptions);
};
}
var模型=新的ViewModel();
ko.应用绑定(模型);
问题是: 方法changeDataSource()用self.carOptions填充self.options,但不会刷新网格

我想我需要重新绑定/刷新或其他什么


Fiddle:

我对ko不熟悉,但是如果你能得到剑道网格小部件实例的引用,请尝试gridWidgetInstance.refresh()。在jquery上我使用了$(“#grid”).data(“kendoGrid”).refresh();@machun:谢谢。我尝试过这个想法,但没有成功。它确实刷新了,但显然是“旧”数据源。