我正在尝试使用Telerik Mvc Treeview。有没有办法指定树有多少嵌套级别?假设我只想要树上的一个级别,那么当我拖放节点时,我希望树视图防止用户将节点拖到另一个节点上,使其成为该节点的子节点。
虽然没有直接的方法告诉TreeView保持严格的级别数量,但您仍然可以防止一个节点被丢弃在另一个节点上。一个简单的方法是检查节点的"位置",虽然它可能不适用于所有情况,但"位置"可以是"over"、"before"或"after"。当一个节点被放在另一个节点的顶部时(这将把它作为子元素添加),它具有"over"位置。知道我们可以做以下事情:
@{Html.Telerik().TreeView()
.Name("TreeView")
.Items(items =>
{
items.Add().Text("Item 1");
items.Add().Text("Item 2");
items.Add().Text("Item 3");
})
.DragAndDrop(true)
.ClientEvents(clientEvents => clientEvents.OnNodeDrop("onNodeDropped"))
.Render();
}
<script type="text/javascript">
function onNodeDropped(e) {
var position = e.dropPosition;
if (position === "over") {
e.preventDefault();
}
}
</script>
这将强制您只能重新组织TreeView中的节点。您可能需要添加代码来适应您的特定场景,因此这里有拖放以及客户端API文档文章的链接。