Привязка radgrid к древовидной структуре данных
-
18-09-2019 - |
Вопрос
У меня есть структура, которая выглядит следующим образом
Class TreeNode {
public TreeNode Parent { get; }
public IEnumerable<TreeNode> Children { get; }
public . . . .
}
Я хочу связать это с радгридом asp.net telerik с подробными таблицами для каждого уровня дочерних элементов.Я знаю, что radgrid поддерживает декларативную привязку к самоссылающейся иерархии с использованием элемента управления источником данных, но это предполагает, что у вас есть плоский набор данных (например,из базы данных) и может просмотреть какое-либо поле родительского ключа.Мой вопрос: связывал ли кто-нибудь radgrid с такой структурой данных раньше, и есть ли способ сделать это декларативно или в основном декларативно?
Решение
Я не могу ответить на ваш вопрос напрямую, так как у меня нет опыта работы с сеткой телерика, но могу предложить обходной путь.
Добавьте в свой класс метод, который сводит его содержимое в самоссылающуюся таблицу, подобную структуре, такой как та, которую вы упомянули.Таким образом, вы по-прежнему можете работать с классом и его более сложной структурой, как вам хочется, но по-прежнему можете выводить содержимое в потребляемой форме, соответствующей ожиданиям компонентов пользовательского интерфейса.
Это также хороший кандидат на метод расширения.
Другие советы
Другой возможный способ, который я могу придумать, — это динамическое построение иерархии путем фильтрации даты для дочерних таблиц на основе их родительского элемента внутри обработчика сетки DetailTableDataBind.Эта демонстрация является хорошим примером:
http://demos.telerik.com/aspnet-ajax/grid/examples/programming/detailtabledatabind/defaultcs.aspx
но я должен согласиться, что предложение Стивена могло бы быть более полезным.
хуй