簡體   English   中英

如何從頭開始構建ASP.NET TreeView ......?

[英]How to build an ASP.NET TreeView From Scratch…?

我試圖在ASP.NET中構建一個嵌套/線程注釋系統。 我不知道PHP人員是怎么做到的。 它比最初想象的要困難得多。

我正在嘗試我最大的獲取分層數據輸出給用戶,但它無法正常工作。

我有一個帶有文本的表,一個itemID和一個parentID。

我想以樹視圖格式顯示信息,但asp.net的標准控件不起作用...

任何人都可以指出我如何將其輸出到樹視圖的正確方向。 我已經嘗試過嵌套轉發器,直接從代碼隱藏和樹視圖控件構建html。

我還沒有找到解決方案......任何人都可以幫助我嗎?

很快,通過頭部(現在無法檢入VS2k8),我會使用Linq to SQL做這樣的事情

private void BuildTree()
{
   List<Item> items = from item in dataContext.Items
                      select item;

   List<Item> rootItems = items.FindAll(p => p.ParentID == null );

   foreach ( Item item in rootItems )
   {
      TreeViewNode tvi = new TreeViewNode(item.text);
      BuildChildNodes(tvi, items, item.ID);
      YourTreeNodeName.Nodes.Add(tvi);
   }   
}

private void BuildChildNodes(TreeViewNode parentNode, List<Item> items, long parentID)
{
   List<Item> children = items.FindAll ( p => p.ParentID = parentID );
   foreach( Item item in children)
   {
      TreeViewNode tvi = new TreeViewNode(item.text);
      parentNode.Nodes.Add(tvi);
      BuildChildNodes(tvi, items, item.ID);         
   }
}

據我所知,如果您有一個包含分層數據的數據庫表,您有兩個選擇:創建自己的自定義數據源,或以編程方式將樹視圖綁定到數據庫表。

我沒有您的代碼,但您可以使用以下步驟:

  1. 在asp.net頁面中聲明樹視圖控件
  2. 使用您的層次數據填充DataTable(通過SqlDataAdapter)(SELECT itemID,parentID FROM ...)
  3. 使用相同的DataTable創建頂級項的DataView(parentID將為null)
  4. 對於DataView的每一行,通過過濾另一個DataView遞歸添加treeview項,其中每個DataViewRow的parentID等於您在步驟4中循環的行

幾乎所有這些都是使用TreeView.Nodes.Add(theNewNode)完成的,其中NewNode是TreeNode對象的一個​​實例

我知道這一切聽起來很混亂,但我過去做過。 我在Stephen Walther ASP.NET Unleashed一書中找到了很好的信息,該書有完整的部分專門用於實現這一目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM