Мне нужно показать данные в раскрывающемся списке, как древовидная структура, я пытался, но не смог получить правильные данные в ASP.Net - PullRequest
3 голосов
/ 06 января 2012

Я работаю над CMS, которая поддерживает несколько языков, и я хочу, чтобы в раскрывающемся меню отображались "pageNames", созданные аналогично примеру ниже

Home Page
Second Page
-Child Page1
-Child Page2
Third Page
-Child Page1
-Child Page2
-Child Page3
--Sub Child Page1
--Sub Child Page2

Ниже приведена структура таблицы, которую я использую для хранения страницы. Я попробовал это, используя код SQL и C #, но не смог сделать это правильно. Если я буду признателен, если кто-нибудь сможет отправить мне SQL-запрос, если это можно сделать с помощью только SQL-запроса, или покажите мне фрагмент кода на C # для этого.

С моей стороны, моя структура таблицы выглядит хорошо, любые изменения в этой структуре также могут улучшить производительность

tbl_Language

LangID int   -- PK
LangName nVarchar(20) -- English, Arabic, Spanish
Lang_Code varchar(6)  -- en-US, ar-AE etc

tbl_Pages

pageID int
PageName nVarchar(50)
pageTitle nVarchar(200)
pageDesc nVarchar(400)
pageBody nVarchar(Max)
.....
.....
PageParent int
LangID int  -- FK
....
....

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 18 января 2012

Вы смотрели на использование иерархии? см .: http://msdn.microsoft.com/en-us/library/bb677173(v=sql.100).aspx

Конечно, вам понадобится Sql 2008 или более поздняя версия, но она предназначена для того, что вы пытаетесь сделать.

0 голосов
/ 06 января 2012

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

Посмотрите эти ссылки для получения дополнительной информации:

...