Я пытаюсь работать с Telerik Mvc Treeview. Есть ли способ указать, сколько из вложенных уровней имеет дерево? Скажем, мне нужен только один уровень на дереве, а затем, когда я перетаскиваю узлы, мне нужно, чтобы древовидная структура не позволяла пользователям удалять узел на другой узел, чтобы он стал дочерним узлом этого узла.Как указать количество уровней древовидной структуры элементов управления Telerik Mvc?
0
A
ответ
0
Пока нет прямого способа показать TreeView, чтобы он оставался на строгом уровне уровней, вы все равно можете помешать удалению узла на другом. Простой способ сделать это, в то время как он может не работать в каждом случае, заключается в том, чтобы проверить, какая «позиция» уходит в узел. «Позиция» может быть либо «над», «раньше», либо «после». Когда узел падает поверх другого (который добавляет его как дочерний элемент), он имеет «над» позицию. Зная, что мы можем сделать следующее:
@{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.