2012-10-05 35 views
3

我一直在這一段時間,但無法解決問題。我搜索了Google的S/O &,但沒有運氣。希望有人在這裏可以幫助解決這個問題。asp.net treeview問題(無法獲取子節點顯示)

我無法在我的TreeView控件中顯示子節點。數據正在從數據庫中檢索。
根節點顯示正常,但沒有顯示子節點。我如何獲得顯示的子節點?

我的代碼是:

private void PopulateTreeNode(DataSet dsList) 
{ 
    var treeNode = new TreeNode(); 
    foreach (DataRow dr in dsList.Tables[0].Rows) 
    { 
     if (dr["RecordTypeID"].ToString() == "1") 
     { 
      TreeNode NewNode = new TreeNode(dr["CustomerName"].ToString(), dr["customerID"].ToString()); 
      treeCustomer.Nodes.Add(NewNode); 
     } 
     else if (dr["RecordTypeID"].ToString() == "2") 
     { 
      TreeNode pNode = new TreeNode(dr["CustomerName"].ToString(), dr["customerID"].ToString()); 
      pNode.ChildNodes.Add(pNode); 
     } 
     else if (dr["RecordTypeID"].ToString() == "3") 
     { 
      TreeNode pNode = new TreeNode(dr["CustomerName"].ToString(), dr["customerID"].ToString()); 
      pNode.ChildNodes.Add(pNode); 
     } 
    } 
    treeCustomer.Nodes.Add(treeNode); 
    treeCustomer.DataBind(); 
} 

回答

3

如果您手動添加像這樣的節點,則不需要調用treeCustomer.DataBind()。它可能會清除你的樹。

+0

殺數據綁定沒有幫助。仍然只看到根節點。 – DotNetRookie

+0

對於RecordTypeID 2和3,您正在創建一個新的TreeNode對象,並將其添加到其自己的子集合中?它似乎沒有添加到treeCustomer或treeNode對象。是pNode.ChildNodes.Add(pNode);應該是treeCustomer.ChildNodes.Add(pNode); (或者查找樹控件中的現有節點並將其添加到那裏)? – d89761

+0

漂亮的catch @diana。非常感謝您的幫助。 – DotNetRookie

0

你有沒有打過電話treeCustomer.ExpandAll()?

您可能還需要設置treeview的各種屬性;關於顯示擴展圖像等。

0

它看起來像你要添加pNode到pNode的子節點。這意味着它不會被添加到treeCustomer中,因爲只有treeNode被添加到treeCustomer。它可能應該添加到treeNode的子節點,或者可能添加爲treeNode的節點。