Telerik Treeview MVC - PullRequest
       3

Telerik Treeview MVC

0 голосов
/ 06 апреля 2011

Я пытаюсь работать с Telerik Treeview в MVC с C #. У меня есть 3 модели и мне нужно только 2 уровня (корневой и дочерний) узлов. Мне нужно, чтобы корневой узел был первой моделью, а дочерний узел - третьей моделью. Оба связаны Второй моделью.

Ниже приведен код, который я сделал:

@using Hant.Material.ValueObject.Domain
@using Hant.Material.Web.Models

@model IEnumerable<DescriptivePatternModel>

@{
    Html.Telerik().TreeView()
        .Name("treeView")
        .ExpandAll(true)
        .BindTo(Model, mapping => mapping
            .For<DescriptivePatternModel>(binding => binding
                .Children(descriptivePattern => descriptivePattern.Items)
                .ItemDataBound((i, descriptivePattern) =>
                {
                    i.Text = descriptivePattern.Name;
                    i.Value = descriptivePattern.Id.ToString();

                })
            )
            .For<ItemModel>(binding => binding
                .ItemDataBound((i, item) =>
                {
                    i.Text = item.VersionDate.ToString();
                    i.Value = item.Id.ToString();
                })
            )            
            ).Render();
}

В этом коде я могу получить доступ только ко Второй модели.

Ответы [ 2 ]

1 голос
/ 26 апреля 2011

У меня была такая же проблема.Вам нужно что-то, чтобы вернуть результат JSON от вашего контроллера.Создайте TreeViewItem в вашем методе действия, свяжите его и верните как jsonresult.Обратите внимание, как возвращаются элементы дерева.Вы можете просто вернуть древовидный элемент в зависимости от вашего случая.

например:

 public JsonResult RefreshGroups(Group currentGroup, int rootUserGroupId)
    {
        parentIds = new List<int> { rootUserGroupId };
        var groupsTree = new List<Group> { GetGroupHierarchy(currentGroup, rootUserGroupId) };


        var treeViewItem = new TreeViewItem();
        treeViewItem.BindTo(groupsTree, mappings =>
                                            {
                                                mappings.For<Group>(binding => binding
                                                .ItemDataBound((item, group) =>
                                                                    {
                                                                        item.Text = group.GroupName;
                                                                        item.Value = group.GroupID.ToString();
                                                                        item.LoadOnDemand = true;
                                                                    })
                                                .Children(group => group.SubGroups));
                                            });

        return new JsonResult
                   {
                       Data = new
                                  {
                                      ExpandedNodes = parentIds,
                                      Nodes = treeViewItem.Items
                                  }
                   };
    }
1 голос
/ 06 апреля 2011

Может быть, вы можете попробовать это:

Children(descriptivePattern => descriptivePattern.Items.First().ThirdModelCollection)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...