Хотя прямого способа заставить 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 , а также Клиентские API статьи документации.