Вложенные дети в Telerik Treeview с MVC 3.0 - PullRequest
2 голосов
/ 26 июля 2011

У меня довольно простая модель данных с тремя таблицами. Контракты, Члены, Эпизоды. И я пытаюсь построить древовидное древовидное представление, чтобы показать каждую запись в трех таблицах относительно их взаимосвязи в уровнях дерева ...

  • Существует несколько контрактов.
  • Каждый контракт имеет несколько участников.
  • У каждого участника есть несколько эпизодов.

Как примечание, демо telerik показывает только один раздел детей. Онлайн-демонстрация Telerik

Кроме того, их Drag and Drop использует те же таблицы и просто использует функцию GetRootEmployee для обучения. Поэтому я не могу найти соответствующие примеры.

Пример:

Contract 1's decription
     Member of Contract 1's name    
          Episodeid of Member in Contract 1
     Another Member of Contract 1...
          Episodeid of another Member.
Contract 2's description

Проблема заключается в том, что я просто не могу успешно заполнить эпизоды (третий уровень), хотя первые два работают нормально. Я опубликую свой Просмотр и мой контроллер.

View

 @(
    Html.Telerik().TreeView()
   .Name("myTree")
   .BindTo(Model, mappings =>
     {
       mappings.For<SMTXEFMVCModel.Contract>(binding => binding
         .ItemDataBound((item, contract) =>
           {
             item.Text = contract.Description;
           })
           .Children(contract => contract.Members));
       mappings.For<SMTXEFMVCModel.Member>(binding => binding
         .ItemDataBound((item, member) =>
           {
             item.Text = member.FirstName + " " + member.LastName;
           })  //If I stop here, it populates Contract and Members correctly.
           .Children(member => member.Episodes));
       mappings.For<SMTXEFMVCModel.Episode>(binding => binding
         .ItemDataBound((item, episode) =>
           {
             item.Text = episode.episodeID;
           }));
     })
)

Контроллер

      public ActionResult TreeView()
  {
      var ctx = new SMTXContext();
      var Contracts = ctx.Contracts.ToList();

      return View(Contracts);
  }

Ответы [ 2 ]

1 голос
/ 28 июля 2011

Похоже, проблема в смешивании типов данных.

item.Text = episode.episodeID;

должно было быть

item.Text = episode.episodeID.ToString();

тогда работает без нареканий.

0 голосов
/ 26 июля 2011

кажется, что ваше третье отображение глючит

 mappings.For<SMTXEFMVCModel.Member>(binding => binding
         .ItemDataBound((item, episode) =>
           {
             item.Text = episode.episodeID;
           }));

не должно определять отображение для Эпизода, а не для участника. Кроме того, нет необходимости в

var Members = ctx.Members.ToList();
      var Assessments = ctx.Assessments.ToList();

когда вы не передаете эти значения для просмотра любым возможным способом, например

return View(Contracts);

Древовидная структура будет автоматически проходить через объекты Участники и Эпизоды через навигационные свойства Контракта и объекта Участник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...