2012-04-02 2 views
0

카테고리와 하위 카테고리 사이에 트리 구조를 개발해야합니다. 관계를 생성하기 위해 핸들러를 사용하고 있습니다.카테고리 및 하위 카테고리와 그 하위 카테고리로부터 트리 구조 만들기

예를 들어 내 SQL 테이블

 
toyota 
    prius 
    prius SP 
     prius PS blue 
    yaris 
    auris 

ford 
    focus 
    focus EX 
    mondeo 
    mustang 


이 whih가 thorugh 루프 것이다 재귀 프로그램을 사용하여이 임 작업을 수행하려면 같은

GlobalID for top-level parents 1000 

Id  CategoryName   ParentId 
1  toyota    1000 
2  ford     1000 
5  prius     1 
6  prius SP    5 
7  prius SP blue   6 
8  focus     2 
9  mondeo    2 
10  mustang    2 
11  focus EX    8 
... 

그래서 범주 보이는 포함의 하위 카테고리.

하지만 어떻게 트리 구조를 추가하고 aspx 페이지로 다시 보낼 수 있습니까?

내가 사용하는 코드는 당신이 할 수있는 것은 대신 1000를 사용 널 (null)을 사용하는 것입니다이

</pre> 
So the categories looks like 
<pre> 
[0] => toyota 
     [0] => prius 
       [0] => prius SP 
         [0] => prius PS blue 
     [1] => yaris 
     [2] => auris 

[1] => ford 
     [0] => focus 
       [0] => focus EX 
     [1] => mondeo 
     [2] => mustang 
</pre> 

답변

0

처럼 영문 페이지에 JSON 트리 구조를 반환하는 방법

// To get all the parent categories 

List<Category> objChildren = new List<Category>(); 

public List<Category> GetCategories(int categoryId) 
{ 
    IQueryable<Category> cats = from ca in db.Categories 
           where ca.ParentId == categoryId && ca.ParentId != nonPageId 
           select ca; 

    return cats.ToList(); 
} 

List<Category> parentCategories = GetCategories(1000); 
foreach(Category _category in parentCategories) 
{ 
    GetChildCats(_category); 
} 

public void GetChildCats(Category cat) 
{ 
    objChildren.Add(cat); 

    List<Category> cats = GetCategories(cat.CatId); 

    if (cats.Count != 0) 
    { 
    foreach (Category cate in cats) 
    {    
     GetChildCats(cate);    
    } 
    } 
} 

입니다 . 그 범주에는 부모가 없다는 것을 의미합니다 (Id = 1000의 부모는 아닙니다).

그런 관계를 (카테고리 부모와 IList의 아이들)지도와 당신이 할 수있을 것입니다 :

var parents = db.Categories.Where(x => x.Parent == null); 

와 범주는 스스로가 원하는 트리 구조가 될 것이며, 당신이 사용할 수있을 것 모든 JSON 시리얼 라이저.

+0

안녕하세요 저는 부모님 ID가 나던간에 차이가 없으므로 null 또는 1000을 유지할 수 있다고 생각합니다.하지만 위의 JSON 형식을 출력하기 위해 중첩 된 방식으로 하위 카테고리 목록과 하위 항목을 추가하는 데 어려움을 겪고 있습니다. 임씨는 그 결과를 얻으려고 애쓴다. 감사합니다 – user840491

+0

EF가 ID 1000 인 상위 항목을 찾으려고 할 때 의미가 있습니다. 또한 데이터베이스 관점에서 보면 1000을 입력하면 참조 무결성을 사용할 수 없으므로 FK를 넣을 수 없습니다 그곳에. 개체 모델을 가지고 있다면 모든 JSON 시리얼 라이저가 작업을 수행합니다. – ivowiblo

관련 문제