2

Kendo UI Web v2012.3.1114 で作業しているときに、サーバーへの AJAX 呼び出しを介して取得したノードを使用して TreeView に単純に追加しようとすると、以下のエラーが発生して失敗します。

ノードは、通常の読み取り関数から返されるデータとまったく同じ形式です。data("kendoTreeView").insertBefore(...)同じツリーと呼び出しを正常に使用しましたが、使用しようとするdata("kendoTreeView").append(...)と失敗します。

エラーメッセージ:

キャッチされていない TypeError: オブジェクト # のプロパティ 'data' は関数ではありません kendo.web.min.js:25

以前はリーフだったノードの新しい子ノードを作成できる必要があるため、他の API を使用してこれを行うことはできません。

ツリーの定義と実行したいことを示すjsFiddleを作成しました。剣道サイトの作業サンプルを参照してみましたが、カスタム スキーマを使用するとすぐに事態が悪化するようです。

私が使用しているjsFiddleのコードは次のとおりです。

function populateHierarchyTree(quotaSetID, columnID, treeDiv) {

    var transport = {
        read: {
            url: '/Quota/QuotaHierarchy/GetQuotaHierarchyChildrenFromParent',
            dataType: 'json',
            data: { columnDefinitionID: columnID, quotaSetID: quotaSetID, batchSize:10 },
            type: 'POST'
        }
    };

    var schema = {
        model: {
            id: 'id',
            hasChildren: 'hasChildren'
        }
    };

    var dataSource = new kendo.data.HierarchicalDataSource({
        transport: transport,
        schema: schema
    });

    treeDiv.kendoTreeView({
        loadOnDemand: true,
        dataSource: dataSource,
        dataTextField: "text",
    });
}

// This function is called with a single node which contains the exact same structure returned from GetQuotaHierarchyChildrenFromParent used by the read. ParentElement could be anything.
function AddNode(node,parentElement,treeView){
    treeView.append(node,parentElement);
}
4

1 に答える 1

2

どのように選択しますparentElementか?kendoTreeViewそれがノードであると確信していますか?

これを試して:

treeView.append(node, parentElement.closest(".k-item"));

私が試みていることを追加することで、あなたの最も近い祖先を.closest(".k-item");見つけることができます。nodeparentNode

于 2012-12-19T16:22:03.740 に答える