1

ツリービューに表示する階層データがあるとします。特定のノードが 1000 個の子を持つ可能性があり、それらすべてを表示したくないので、ツリー内のノードをページングするというアイデアをいじっています。私は 10 人の子供を表示します。それ以上の子供がいる場合、ユーザーは次/前のボタンをクリックしてそれらを表示する必要があります。SQLページングは​​機能していますが、ツリービューでやりたいことを実行できません。

これを行うと、コントローラーは適切なノード ID とページ ID を取得し、結果の正しいページを返します。しかし、ツリービューには、私が要求した子の 1 ページのみが表示されます。残りの階層 (すべての親) は失われます。

$("#btnNextPage")
    .click(function () {
        var selectedNode = treeview.select();
        var selectedNodeID = treeview.dataItem(selectedNode).id;
        ds.read({
            LoopID: selectedNodeID,
            page: ds.page() + 1
});

これを行うと、階層を維持でき、コントローラーが呼び出されますが、要求しているページを渡す方法がわかりません。

$("#btnNextPage")
    .click(function () {
        var selectedNode = treeview.select();
        var testnode = treeview.dataItem(selectedNode);
        testnode.loaded(false);
        testnode.load();
});

私は ASP.NET Web フォームを使用してきましたが、これが jquery と剣道への最初の進出です。何か案は?

4

2 に答える 2

0

ページを変更すると、Kendo DataSource はメモリ内のレコードをサーバーから取得した新しいページに置き換えます。

以前に読み込まれたすべてのページを別の観察可能な配列に保持し、代わりにツリービューをそれにバインドする必要があります。

于 2013-05-02T03:32:45.200 に答える
0

Telerik の人々からの指摘により、私はこれを機能させました。秘訣は、選択したノードの子のデータソースである children プロパティを使用することでした。したがって、次のページ ボタンをクリックすると、次のようになります。

parentNodeDataItem.children.read({ LoopID: parentNodeID, page: currentPage });

これにより、祖先の階層を失わずに子を更新するという、私が望んでいた動作が実現しました。

于 2013-05-06T18:56:11.150 に答える