Как отобразить иерархические данные с помощью ASP.NET? - PullRequest
2 голосов
/ 08 июня 2009

Как отобразить иерархические данные в ASP.NET? У меня есть источник данных, который выглядит следующим образом:

class Tree
{
   IEnumerable<Node> Nodes { get; set; }
}

class Node
{
   string Description { get; set; }
   decimal Amount { get; set; }
   IEnumerable<Node> SubNodes { get; set; }
}

Я хотел бы сделать это в виде списка div, как показано ниже. Мне нужны теги div для плавной анимации при развертывании и свертывании ветвей.

<ul class="foldable">
   <li>
      <div class="line">
         <div class="description">...</div>
         <div class="amount">...</div>
      </div>
      <div class="line">
         <div class="description">...</div>
         <div class="amount">...</div>
      </div>
      <ul>
         <li>
            <div class="line">
              <div class="description">...</div>
              <div class="amount">...</div>
            </div>
         </li>
      </ul>
   </li>
</ul>
  • Я пытался создать это, используя ListView элементов, но я не мог понять, как вызвать его рекурсивно.
  • Я также посмотрел на класс TreeView , но отбросил его, потому что он отображается с использованием таблиц.
  • Я отказался от Адаптеров дружественного управления CSS , поскольку, похоже, это либо переключатель, либо переключатель для всех элементов управления на веб-сайте.
  • Я пытался с BulledList , но не мог понять, как заставить его отображать div.

В итоге я использовал четыре идентичных вложенных элемента ListView, поскольку знаю, что мои списки никогда не превышают четырех уровней. Но это решение настолько уродливо, что я надеюсь найти здесь лучшее. =) * * Тысяча двадцать пять

1 Ответ

3 голосов
/ 08 июня 2009

Вы можете использовать элемент управления повторителем, а затем циклически перебирать свой список, и для каждого узла, у которого есть дочерние узлы, есть другой повторитель. Это потребует некоторых усилий, потому что вам нужно будет использовать его программно, но наличие встроенного элемента управления Repeater в качестве элемента управления сервером сделает его немного проще.

Мне нравится использовать повторители, потому что они ОЧЕНЬ гибки, когда вы занимаетесь временем и работаете с ними. Это, и они не вставляют посторонний HTML. :)

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