gpt4 book ai didi

javascript - kendo ui treeList 最大调用栈大小错误

转载 作者:行者123 更新时间:2023-12-03 22:51:58 25 4
gpt4 key购买 nike

您好,我是使用 kendo ui 的用户。我试图显示
以下数据使用 Kendo UI TreeList,但出现最大调用堆栈大小错误。当我详细点击错误时,错误出现在defaultParentId(kendo.all.js:114128)中。你能告诉我为什么吗?下面是我使用的数据源选项。

schema:{  
model:{
id:"codeNo",
parentId:"upCodeNo",
fields:{
codeNo:{
type:'number'
},
upCodeNo:{
type:'number'
}
},
expanded:true
}

下面是我实际导入的数据。
{"CODE":"N", "LANG_CLASS":"", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":0, "CODE_NO":1}, {"CODE":"Y", "LANG_CLASS":"", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":0, "CODE_NO":2}, {"CODE":"N", "LANG_CLASS":"CNA", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":1, "CODE_NO":3}, {"CODE":"Y", "LANG_CLASS":"CNA", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":2, "CODE_NO":4}, {"CODE":"N", "LANG_CLASS":"ENG", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":1, "CODE_NO":5}, {"CODE":"Y", "LANG_CLASS":"ENG", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":2, "CODE_NO":6}, {"CODE":"N", "LANG_CLASS":"JPN", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":1, "CODE_NO":7}, {"CODE":"Y", "LANG_CLASS":"JPN", "CODE_NAME":"사용(일본어)", "REMARKS":"", "UP_CODE_NO":2, "CODE_NO":8}, {"CODE":"N", "LANG_CLASS":"KOR", "CODE_NAME":"미사용", "REMARKS":"", "UP_CODE_NO":1, "CODE_NO":9}, {"CODE":"Y", "LANG_CLASS":"KOR", "CODE_NAME":"사용", "REMARKS":"", "UP_CODE_NO":2, "CODE_NO":10}

最佳答案

您没有为 Kendo UI 数据源定义正确的字段。

基于 https://demos.telerik.com/kendo-ui/treelist/local-data-binding 上的文档

定义父 ID 的正确方法是在数据本身中,即

{ "UP_CODE_NO":2, "CODE_NO":10 }  //wrong
{ "parentId":2, "CODE_NO":10 } //correct

因此,您需要使用像 map 这样的函数来转换数据,而不是使用您现在拥有的数据,例如
dataArray.map(function (data) {
data["parentId"] = data["UP_CODE_NO"] > 0 ? data["UP_CODE_NO"] : null;
return data;
})

以下是使用您在问题中提供的数据的工作片段。

$(document).ready(function () {
var dataSource = new kendo.data.TreeListDataSource({
data: [
{"CODE":"N", "LANG_CLASS":"", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":0, "CODE_NO":1}, {"CODE":"Y", "LANG_CLASS":"", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":0, "CODE_NO":2}, {"CODE":"N", "LANG_CLASS":"CNA", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":1, "CODE_NO":3}, {"CODE":"Y", "LANG_CLASS":"CNA", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":2, "CODE_NO":4}, {"CODE":"N", "LANG_CLASS":"ENG", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":1, "CODE_NO":5}, {"CODE":"Y", "LANG_CLASS":"ENG", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":2, "CODE_NO":6}, {"CODE":"N", "LANG_CLASS":"JPN", "CODE_NAME":"", "REMARKS":"", "UP_CODE_NO":1, "CODE_NO":7}, {"CODE":"Y", "LANG_CLASS":"JPN", "CODE_NAME":"사용(일본어)", "REMARKS":"", "UP_CODE_NO":2, "CODE_NO":8}, {"CODE":"N", "LANG_CLASS":"KOR", "CODE_NAME":"미사용", "REMARKS":"", "UP_CODE_NO":1, "CODE_NO":9}, {"CODE":"Y", "LANG_CLASS":"KOR", "CODE_NAME":"사용", "REMARKS":"", "UP_CODE_NO":2, "CODE_NO":10}
].map(function (data) { data["parentId"] = data["UP_CODE_NO"] > 0 ? data["UP_CODE_NO"] : null; return data; }),
schema: {
model: {
id: "CODE_NO",
expanded: true
}
}
});

$("#treelist").kendoTreeList({
dataSource: dataSource,
height: 540,
columns: [
{ field: "LANG_CLASS" },
{ field: "CODE_NAME" },
{ field: "REMARKS" }
]
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2019.1.220/js/kendo.all.min.js"></script>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2019.1.220/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2019.1.220/styles/kendo.default.min.css">
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2019.1.220/styles/kendo.mobile.min.css">
<div id="treelist"></div>

关于javascript - kendo ui treeList 最大调用栈大小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55035180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com