Как указать количество уровней древовидной структуры Telerik Mvc? - PullRequest
0 голосов
/ 06 января 2012

Я пытаюсь работать с Telerik Mvc Treeview. Есть ли способ указать, сколько вложенных уровней у дерева? Скажем, мне нужен только один уровень в дереве, а затем, когда я перетаскиваю узлы, я хочу, чтобы древовидная структура не позволяла пользователям перенести узел на другой узел, чтобы он стал дочерним узлом этого узла.

1 Ответ

0 голосов
/ 09 января 2012

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

...