具有MVVM的Kendo网格,绑定列可见性

Mat*_*att 5 kendo-ui kendo-grid kendo-mvvm

我有一个使用MVVM的kendo网格.我的问题是我似乎无法使用隐藏属性和表达式设置列可见性:

data-columns=
             "[{'template':'# if (User!=null) { # #=User.Name# # } #',
             'title':'User', 'hidden': User==null}
Run Code Online (Sandbox Code Playgroud)

模板有效,但"隐藏"属性似乎没有.

有没有办法让这个工作?

Lar*_*ner 8

作为替代方案,您可以绑定到dataBindingor dataBound事件以有条件地隐藏列:

data-bind="events:{ dataBinding: onDataBinding }"
Run Code Online (Sandbox Code Playgroud)

查看型号:

var viewModel = kendo.observable({
    User: null,
    showHideUserColumn: function (e) {
        var grid = e.sender;

        if (this.User) {
            grid.showColumn("User");
        } else {
            grid.hideColumn("User");
        }
    },
    onDataBinding: function (e) {
        this.showHideUserColumn(e);

        // if you want to track changes, (re)bind change tracking
        this.unbind("change", this.showHideUserColumn);
        this.bind("change", this.showHideUserColumn);
    }
});
Run Code Online (Sandbox Code Playgroud)