2010-06-09 5 views
0

나는 데이터베이스에서 계층 구조를 표시하는 일부 컨트롤러로 가져 오는 계층 구조 데이터를 설치하는 것이 가장 좋습니다. 기본적으로 이것은 일반적인 트리처럼 보일 것이지만 "챕터"아래에있는 항목을 누르면 다른 페이지로가는 링크가 생깁니다.계층 구조 데이터를 설정하는 가장 좋은 방법

나는 이러한 테이블을 가지고 있고 이것은 그들이

Period 
Courses 
Subjects 
Chapters 

를 연결하는 방법 나는 DropDownBox에서 기간을 선택하고 내가 그 시대의 모든 과정이 줄을 할 수 있습니다. 각 과목 아래에 주제가 있으며, 그 밑에는 전형적인 계층 구조 인 쵸커가 있습니다.

테이블은 서로 선형으로 링크되어 있습니다.

나는 이것을 보여주기 위해 treeview를 사용해 보았지만 어떻게하는지 이해하지 못한다. 나는 <ul><il> 태그를 사용할 수 있지만 런타임에 그것을 할 수 있습니다. 수확 자나 데이터리스트가 가능합니까?

XAML 또는 코드에서 데이터 바인딩을 사용하는 것이 더 좋습니까?

답변

1

제 경험상 리와 ul에 가장 능숙합니다. 모든 것을 표시하는 방법을 더 많이 제어 할 수 있습니다. 나에게 모든 기록과 부모와 깊이를 제공하는 질의가있다. 그런 다음이 데이터를 반복하여 목록 태그를 생성했습니다.

foreach는 (navigationTable.Rows에서 DataRow를 행) {

  var currentDepth = int.Parse(row["depth"].ToString()); 

      if (lastDepth < currentDepth) 
      { 
       output.Append("<ul>"); 
       numUl++; 
      } 
      else if (lastDepth > currentDepth) 
      { 
       while (lastDepth > currentDepth) 
       { 
        output.Append("</li></ul></li>"); 
        numUl--; 
        lastDepth--; 
       } 
      } 
      else if (lastDepth > -1) 
      { 
       output.Append("</li>"); 
      } 

      output.AppendFormat("<li id=\"base\" class=\"class\">{3}<a>link</a> 

      lastDepth = currentDepth; 
     } 

     for (var i = 1; i <= numUl; i++) 
     { 
      output.Append("</li></ul>"); 
     } 
+0

내가이 권리를 이해한다면, 당신은 당신이 데이터베이스에 저장 한 항목의 깊이에 대한 기록이? – eski

+0

예, 아마도 당신이 필요로하는 것과 완벽하게 어울리지는 않지만 아이디어를 얻는 한 예입니다 :) – Ivo

관련 문제