связывание данных в древовидной структуре asp.net? - PullRequest
0 голосов
/ 05 марта 2012

Мне нужна древовидная структура типа

Accounts-->Kmart-->California-->Stockton CA 95207
                             -->Oakdale, CA 95361   

из этой таблицы

SCID    SCEID   SCElement   ParentID    Parent      SalesChannelName
67      27      Account     0           Root        Kmart
71      28      State       67          KMart       California
72      29      Store       71          California  Stockton CA 95207
74      29      Store       71          California  Oakdale, CA 95361

Я попробовал пример по этой ссылке http://aspalliance.com/732. Он работает нормально. Но я не знаю, как (написать запрос) сформировать древовидную структуру из этой таблицы в этом примере кода ... Есть предложения?

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Заполните данные из таблицы два раза разными именами таблиц.

Пример:

da.Fill(ds,"Table1");
da.Fill(ds,"Table2");

Теперь добавьте отношение данных в наборе данных с идентификатором из таблицы Table1 и ParentId из таблицы 2

Теперь привязка к древовидной структуре

Ниже ссылка поможет вам.

http://joshsmithonwpf.wordpress.com/2007/05/05/binding-a-treeview-to-a-dataset/

Для этого используются две таблицы из БД.Но вы можете использовать одну и ту же таблицу дважды с небольшими изменениями в запросе SQL

1 голос
/ 05 марта 2012

Чтобы «привязать» данные к древовидному представлению, они должны быть в правильном формате, чтобы древовидное представление могло перевариваться. То есть он должен применять интерфейс IHierarchicalDataSource , такой как отформатированный документ XML и т. Д.

К сожалению, когда вы извлекаете данные из базы данных, они не будут иерархически отформатированы, и у вас будет два варианта ...

  1. Конвертируйте ваши данные в XMLDataSource и отформатируйте / упорядочите ваши данные перед привязкой к древовидной структуре
  2. Как и в примере, загрузите данные в DataTable и используйте рекурсивную функцию для добавления узлов вручную. Я думаю, что если вы ищете инкапсуляцию, вы можете унаследовать новый элемент управления от существующего дерева и добавить метод соответствующим образом.

НТН

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