단지 계산 수준처럼, 그것을 구축 : 웹 페이지의 링크, 당신은 디스플레이의 범주 이름과 해당 IDS 모두를 갖고 싶어 하겠지만
WITH TempCtgry (CtgryID, CtgryName, ParentCtgryId, Lvl) AS (
SELECT CategoryID, CategoryName, ParentCatID, 0 as Level,
Convert(VarChar(1024), CategoryName) as Path
FROM Category r
WHERE r.ParentCatID IS NULL
UNION ALL
SELECT r1.CategoryID, r1.CategoryName, r1.ParentCatID, TempCtgry.Lvl + 1,
Convert(VarChar(1024), Path + ' >> ' + r1.CategoryName) as Path
FROM Category r1 INNER JOIN
TempCtgry on r1.ParentCatID = TempCtgry.CtgryID
)
SELECT *
FROM TempCtgry
경로를 표시하려면 링크에서 사용하기 위해. 문자열 분리 함수를 사용할 수있는 간단한 구분 기호입니다 (예 :
WITH TempCtgry (CtgryID, CtgryName, ParentCtgryId, Lvl) AS (
SELECT CategoryID, CategoryName, ParentCatID, 0 as Level,
Convert(VarChar(1024), CategoryName) as Path,
Convert(VarChar(1024), CategoryID) as PathIds
FROM Category r
WHERE r.ParentCatID IS NULL
UNION ALL
SELECT r1.CategoryID, r1.CategoryName, r1.ParentCatID, TempCtgry.Lvl + 1,
Convert(VarChar(1024), Path + '|' + r1.CategoryName) as Path,
Convert(VarChar(1024), PathIds + '|' + Convert(VarChar(9), CategoryId)) as PathIds
FROM Category r1 INNER JOIN
TempCtgry on r1.ParentCatID = TempCtgry.CtgryID
)
SELECT *
FROM TempCtgry
참고 : this는 디스플레이 코드를 단순화이 수직 막대 ("|")가 있다고 가정 범주 이름에서 발생할 수 없습니다.
ASP.NET 코드는 두 경로 문자열을 분리하여 함께 링크를 만들어내어 내려야합니다. 편리한 디스플레이 분리 기호는 "»"(U + 00BB : 오른쪽 - 포인팅 더블 앵글 따옴표)입니다.
모든 HTML 코드를 추가하여 쿼리에 필요한 HTML을 생성 할 수는 있지만 그것이 속한 곳이 아닙니다.
어떻게 링크를 asp.net.It에 입력 할 수있는 좋은 일이지만 내가 asp.net 페이지에서 문자열을 제공하고 어떻게 경로 열의 각 cateogry에 대한 링크를 제공 할 수 있습니까? 감사합니다. –
@ KaanKılıç - 건물 링크 용 카테고리 이름과 ID를 모두 처리하는 방법을 보여주는 답변이 업데이트되었습니다. – HABO
고마워요. 좋은 대답에 대해 감사합니다. 저에게 도움이되었습니다. –