0
我有一個從ComboBox和多選的數據獲取頁面的樹視圖。 ComboBox包含每種成分的名稱,而multiselect包含可能的數量類型,然後將其用作所有子節點的名稱。Kendo UI TreeView:只添加視圖中不存在的節點
樹看起來就像這樣:
- 成分1
- 100毫克
- 200毫克
- 成分2
- 50毫克
- 100毫克
一切正常,只是因爲我無法驗證,如果一個節點已經存在,我可以添加相同值的兩倍。
這裏是我用添加新元素的功能:
var addElement = function() {
var treeview = $("#ingredientTree").data("kendoTreeView");
var multiselect = $("#ingredientAmount").data("kendoMultiSelect");
var ingredientToAdd= $("#ingredient").val();
// I allways get an empty array at this point.
var exinstingIngredient= treeview.findByText(ingredientToAdd);
var children = new Array();
var amount = multiselect.value();
for (var j = 0; j < amount.length; j++) {
children.push({ text: amount[j] });
}
// it allways adds the items because the length is allways 0
if (exinstingIngredient.length === 0) {
treeview.append({
text: ingredientToAdd,
items: children
});
}
}
我不明白爲什麼它不能找到現有的元素,即使我設置它的名稱作爲文本和搜索這個文本。
編輯:
我們這裏有樹視圖:
@(Html.Kendo().TreeView().TemplateId("treeview-template").Name("ingredientTree"))
這是材料的來源,它處理只是簡單的字符串:
@(Html.Kendo().ComboBox()
.Name("ingredient")
.DataSource(source => source.Read(r => r.Url(Url.HttpRouteUrl("DefaultApi", new { controller = "InternationalIngredients" }))))
.Events(events => events.Change("onIngredientChanged"))
)
以下,可以找到源用於處理字符串的金額:
這是確定的服務電話選擇成分的功能:
function getIngredient() {
return { ingredient: $("#ingredient").val() }
}
你可以發佈treeview和數據源代碼嗎? –