Kendo UI TreeView 支持树节点的拖拽(drag and drop),使用拖拽功能,可能很容易地实现树结构的编辑。启用托拽功能非常简单,只要在TreeView初始化时,设置dragAndDrop: true就可以了。TreeView在drop事件中响应drop动作,从事件的参数中可以获取被拖拽的节点(sourceNode)和目标节点(destinationNode)。如果拖拽不合法,比如将根节点拖拽到子节点,事件中的valid为false,被拖拽的节点会回到原来的位置。在drop事件中我们可以编写代码,通过ajax改变数据源中节点的顺序。
示例代码如下:
$("#treeview").kendoTreeView({
checkboxes: false,
dragAndDrop: true,
dataSource: dataSource,
dataTextField: "Label",
select: onSelect,
drop: function (e) {
var treeview = $("#treeview").data("kendoTreeView");
if (e.valid) {
var dataItemS = treeview.dataItem(e.sourceNode);
var dataItemT = treeview.dataItem(e.destinationNode);
var dto = {
targetRootId: dataItemT.Id,
movedId: dataItemS.Id,
};
PlatApi.basePost('MoveTreeNode', dto, function (res) {
if (res) {
message.show(res, "warning");
} else {
message.show("移动成功", "success");
}
});
}
}
});