2013-03-23 47 views
3

我是C#/ ASP.Net的新手。現在我有一個項目涉及從兩個SQL表中綁定一棵樹。我做了一些家庭工作..我能夠綁定我的樹。首先是我的桌子。我的目標是將我的孩子與其相應的父母進行分組。但是小孩會進入所有的父母身上會發生什麼。我知道我幾乎在那裏,但我卡住了。 :(如何將我的子節點分組到它相應的父節點?

tblCategory(parentnodes) 
categoryID(varchar(20)) 
Category(varchar(50)) 
active(char(1)) 

tblDocuments(childnodes) 
id(int) 
description(varchar(100)) 
title(varchar(20)) 
categoryid(varchar(20)) 

tblcategory.categoryid = tbldocuments.categoryid 

這裏是我的代碼。

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      //bindtree 
      DataTable dtCategoryNodes = new DataTable(); 
      dtCategoryNodes = content.dtCategoryNodes(); 
      dtCategoryNodes.AcceptChanges(); 

      DataTable dtNodes = new DataTable(); 
      dtNodes = content.GetNodes(); 
      dtNodes.AcceptChanges(); 

      TreeNode CategoryNode = null; 
      for (int i = 0; i < dtCategoryNodes.Rows.Count; i++) 

      { 
       string categoryid = dtCategoryNodes.Rows[i]["CategoryID"].ToString(); 

       CategoryNode = new TreeNode(dtCategoryNodes.Rows[i] 
       "CATEGORY"].ToString()); 

       CategoryNode.Collapse(); 
       for (int j = 0; j < dtNodes.Rows.Count; j++) 
       { string parentid = dtNodes.Rows[j]["parentid"].ToString(); 

        TreeNode childNode = new TreeNode(dtNodes.Rows[j]["TITLE"].ToString()); 
        CategoryNode.ChildNodes.Add(childNode); 


       }   

       tvContents.Nodes.Add(CategoryNode); 
       tvContents.DataBind(); 
       } 
      } 
      } 

,但我有一個問題在這裏。這裏是發生了什麼事我的樹。

a. Crift Items 
a.1Configuring DCOM 

b.Internal Refresher Trainings 
b.1Configuring DCOM 

c. Product/Process Update 
c.1 Configuring DCOM 

d.Promotions/Discounts 
d.1 Configuring DCOM 

e.QA Update 
e.1 Configuring DCOM 
下面

是我的數據 tbldocument id標題文件類別ID 1配置DCOM DCOM.doc產品目錄號

tblCategory 
CategoryID Category     active 
CRIFT Crift Items     Y 
IRTRAIN Internal Refresher Trainings Y 
PRODUPDT Product/Process Update   Y 
PROMODISCS Promotions/Discounts   Y 
QAUPDT QA Update     Y 

感謝所有的意見和建議!提前致謝!

回答

1

更換

for (int j = 0; j < dtNodes.Rows.Count; j++) 
{ string parentid = dtNodes.Rows[j]["parentid"].ToString(); 
    TreeNode childNode = new TreeNode(dtNodes.Rows[j]["TITLE"].ToString()); 
    CategoryNode.ChildNodes.Add(childNode); 
} 

隨着

foreach(DataRow drChild in dtNodes.Select("CategoryID=" + categoryid)) 
{ 
    TreeNode childNode = new TreeNode(drChild["TITLE"].ToString()); 
    CategoryNode.ChildNodes.Add(childNode); 
} 
+0

喜阿倫!對於遲到的回覆感到抱歉......感謝您的建議。我試過了,但我想我錯過了我的代碼中的一些觀點。這是我做的。 – Joel 2013-03-25 03:12:36

+0

for(int i = 0; i Joel 2013-03-25 03:15:30

+0

謝謝!感謝幫助! – Joel 2013-03-25 03:16:52

相關問題