5

MVVM を使用した剣道グリッドがあります。私の問題は、隠し属性と式を使用して列の可視性を設定できないように見えることです:

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

テンプレートは機能しますが、「hidden」属性は機能しないようです。

これを機能させる方法はありますか?

4

2 に答える 2

8

dataBinding別の方法として、 ordataBoundイベントにバインドして、条件付きで列を非表示にすることもできます。

data-bind="events:{ dataBinding: onDataBinding }"

モデルを見る:

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);
    }
});
于 2014-03-18T12:55:56.303 に答える
4

属性を介して指定されたプロパティのみがdata-bindMVVM 変更追跡に参加します。他のデータ属性はウィジェット構成プロパティにマップされ、ビュー モデルに対して評価されません。

現在、グリッド列を非表示および表示できるバインディングはありません。

于 2014-03-18T11:50:27.860 に答える