2010-06-09 41 views
0

我想弄清楚設置從數據庫進入某些控制器並顯示層次結構的層次結構數據的最佳實踐。 基本上,這看起來像一個正常的樹,但是當你按下「章節」下的項目時,你會得到另一個頁面的鏈接。設置層次結構數據的最佳做法

我有這些表,這是它們連接

Period 
Courses 
Subjects 
Chapters 

我從DropDownBox選擇的時間,然後我想在那個時期所有的課程排隊的方式。 在每門課程下都是主題,在它們下面是chapers,典型的層次結構。

這些表格以線性方式相互鏈接在一起。

我試圖使用treeview來顯示這一點,但不知道如何去做。 雖然我可以使用<ul><il>標籤,並在運行時執行此操作。 Reapeter或datalist,可能嗎?

使用XAML或代碼中的數據綁定執行此操作會更好嗎?

回答

1

根據我的經驗,最好用李和ul。您可以更好地控制所有內容的顯示方式。我得到的查詢給了我所有的記錄,父母和深度。然後我遍歷這些數據並生成列表標籤。

的foreach(DataRow的行navigationTable.Rows) {

  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 2010-06-09 11:28:25

+0

是的,也許它不完全符合你的需求,但它是一個想法的例子:) – Ivo 2010-06-09 12:18:03

相關問題