我正在尝试使用Telerik Mvc Treeview。有没有办法指定树有多少嵌套级别?假设我只想在树上使用单个级别,那么当我拖放节点时,我希望树视图阻止用户将节点放到另一个节点上,以便它成为该节点的子节点。
答案 0 :(得分:0)
虽然没有直接的方法告诉TreeView保持严格的级别,但您仍然可以防止节点被丢弃到另一个节点上。一个简单的方法,虽然它可能不适用于每种情况,但是要检查节点被放入的“位置”。“位置”可以是“超过”,“之前”或“之后”。当一个节点被放在另一个节点之上时(将其添加为子元素),它具有“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中的节点。您可能需要添加适合您特定方案的代码,因此这里有指向Drag and Drop以及Client-side API文档文章的链接。