我使用Knockout-Kendo.js库来绑定带有Knockout绑定的Kendo Grid。我已经构建了一个系统,它可以加载多个数据源,每个数据源都有自己的一组列。除了获得分配给Knockout绑定Kendo Grid的新列集合外,我的一切都很好。
我读了一些方法来获得列重新初始化,但所有这些都需要网格被破坏和重新创建。我不确定我该如何处理淘汰赛绑定网格。我使用下面的代码。
HTML:<div data-bind="kendoGrid: gridOptions"></div>
淘汰赛/JS:
self.SearchResults
和self.GridColumns
都是可观察数组。
self.gridOptions = {
data: self.SearchResults,
columns: self.GridColumns
};
当我更新self.SearchResults
时,网格更新正确。更新self.GridColumns
对网格中显示的列没有影响。
如果有人能指出我在正确的方向上,我将如何得到的列集合更新和显示与使用由上面链接的库提供的Knockout绑定结合,我将非常感激。
我刚刚算出来了。其实很简单。
我最后做的是:
- 获取网格和当前网格选项的引用
- 将更新后的
self.GridColumns()
计算值分配给选项 -
将网格选项设置为更新后的选项
var grid = $("#grid").data("kendoGrid"); var options = grid.getOptions(); options.columns = self.GridColumns(); grid.setOptions(options);