Kendo 树视图拖放总是父级的最后位置
Kendo treeview drag and drop always last position of parent
我在 kendo 树视图中遇到问题。我有一棵 'folders' 的树。我启用了拖放功能,但每当我将一个文件夹拖放到另一个文件夹中时,它会被定位为该文件夹的最后一个项目。
我的数据源是 kendo.data.HierarchicalDataSource 类型,传入数据按 'caption'/文本字母顺序排序。我希望丢弃的节点也按字母顺序排序,所以在某种程度上我想触发对另一个节点被丢弃的节点的求助调用。
我该如何实现?
我已经尝试在 kendo.data.HierarchicalDataSource 对象中定义排序参数,但这并没有太大变化。
在幕后,HierarchicalDataSource 是一个数据源,它有一个 children(项目)数组,也是数据源。通常,这些项目只是像普通字段一样对待,并且不会在 children.
上递归地完成对主数据源的操作。
排序就是一个例子。正如您在 https://docs.telerik.com/kendo-ui/controls/navigation/treeview/how-to/binding/sort-child-nodes 上看到的那样,您需要自己对 children 进行递归排序:
function setSort(items){
for(var i=0; i < items.length; i++){
if(items[i].hasChildren){
items[i].children.sort({field: "FullName", dir: "desc"});
setSort(items[i].children.view());
}
}
}
我在 kendo 树视图中遇到问题。我有一棵 'folders' 的树。我启用了拖放功能,但每当我将一个文件夹拖放到另一个文件夹中时,它会被定位为该文件夹的最后一个项目。
我的数据源是 kendo.data.HierarchicalDataSource 类型,传入数据按 'caption'/文本字母顺序排序。我希望丢弃的节点也按字母顺序排序,所以在某种程度上我想触发对另一个节点被丢弃的节点的求助调用。
我该如何实现?
我已经尝试在 kendo.data.HierarchicalDataSource 对象中定义排序参数,但这并没有太大变化。
在幕后,HierarchicalDataSource 是一个数据源,它有一个 children(项目)数组,也是数据源。通常,这些项目只是像普通字段一样对待,并且不会在 children.
上递归地完成对主数据源的操作。排序就是一个例子。正如您在 https://docs.telerik.com/kendo-ui/controls/navigation/treeview/how-to/binding/sort-child-nodes 上看到的那样,您需要自己对 children 进行递归排序:
function setSort(items){
for(var i=0; i < items.length; i++){
if(items[i].hasChildren){
items[i].children.sort({field: "FullName", dir: "desc"});
setSort(items[i].children.view());
}
}
}