1

Kendo UI Treeview に Kendo Hierarchical Datasource を使用しています。クリック イベントで、チェック済みの ROM のみをデータソースに残したい。

私は試した

    $('#treeview')
         .getKendoTreeView()
         .dataSource
         .filter({ 
                  field: "checked", 
                  operator: "eq", 
                  value: true });

しかし、役に立たない。

正しいフィールドがありますか?

また、ボーナス ポイントの場合、フィルターを削除するにはどうすればよいですか?

4

1 に答える 1

4

checkedテンプレートで次のように定義した場合は、正しいフィールドです。

$("#treeview").kendoTreeView({
    checkboxes: { template: "<input type='checkbox' name='checkedNodes' #= item.isChecked ? 'checked' : '' # value='#= item.id #' />" },
    dataSource: [{ 
        id: 1, text: "My Documents", expanded: true, spriteCssClass: "rootfolder", items: [
            { id: 2, text: "about.html", expanded: true, isChecked: false, spriteCssClass: "folder" },
            { id: 3, text: "index.html", expanded: true, isChecked: true, spriteCssClass: "folder" }
        ]
     }]
});

私の場合、名前が付けられていますisCheckeditem.isChecked私のコードを参照)。

ただし、正しくフィルタリングするには、注意してください:filter現在のレベルでのみ機能します (たとえば、この質問を参照してください)。

おまけの質問ですが、フィルターを削除するには、次のコードを適用するだけです。

$('#treeview')
     .data("kendoTreeView")
     .dataSource
     .filter({ });

(階層のすべてのレベルで以前と同じです!)。


編集

フィルターで遊ぶためのフィドルは次のとおりです: http://jsfiddle.net/scaillerie/RHh67/

于 2012-11-21T08:31:24.863 に答える