KoGrid保存可见列

时间:2014-02-13 18:42:03

标签: javascript knockout.js kogrid

我有一个KoGrid,希望能够在用户重新访问页面时保存可见列。我会将json中的数据保存到cookie或数据库中,但是如何在列的visible属性发生更改时获得通知,并在初始化时加载可见性?

1 个答案:

答案 0 :(得分:0)

使用kg.grid构造函数的一些创造性覆盖很容易实现

http://jsfiddle.net/A29GA/2/

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代码,它的快速和脏

http://jsfiddle.net/A29GA/3/