0

Kendo Hierarchical Datasource 内のアイテムを検索しようとしています。そのアイテムの uid を取得し、Kendo Treeview のそのアイテム ノードがプログラムで選択されるようにする必要があります。

これがコードです。ずさんなアルゴリズムを許してください。

function findTreeviewNodeById(haystack, needle) {
    var uid = null;

    for (var i = 0; i < haystack.length; i++) {
        if (haystack[i].id == needle) {
            uid = haystack[i];
        }
        else if (haystack[i].hasChildren) {
            uid = findTreeviewNodeById(haystack[i].children.data(), needle);
        }

        if (uid != null)
            break;
    }

    return uid;
}

上記のコードは、深さが 2 レベルの階層データソースに対してのみ機能します。3 番目のレベルに達したときに、より深い階層データソースをフィードしようとすると、この行 haystack[i].children.data() は空の子を返します (空ではないはずです)。データソースの第 3 レベルが空なのはなぜですか? ツリービューは階層データソース内に含まれるすべてのデータを完全に表示しましたが。ここで何か不足していますか?

4

1 に答える 1