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);
}