我有一个KoGrid,希望能够在用户重新访问页面时保存可见列。我会将json中的数据保存到cookie或数据库中,但是如何在列的visible属性发生更改时获得通知,并在初始化时加载可见性?
答案 0 :(得分:0)
使用kg.grid构造函数的一些创造性覆盖很容易实现
var savedState = { age: false, name: true };
var org = kg.Grid;
kg.Grid = function (options) {
var grid = new org(options);
ko.utils.arrayForEach(grid.columns(), function(col) {
//load state from cookie
col.visible(savedState[col.field]);
});
grid.visibleColumns.subscribe(function() {
console.log("Here you get notified when visible columns change save to cookie");
});
return grid;
};
这是一个使用实际cookie的示例,但我不会依赖cookie代码,它的快速和脏