2010-06-18 45 views
0

我有一個表具有通常的ParentID,ChildID,因爲它是自引用樹數據結構中的前兩列。什麼是最好的方式來綁定ASP.NET TreeView的表格與許多父子關係

我的問題是,我拉了這一點時,使用下面的代碼:

DataSet set = DA.GetNewCategories(); 
     set.Relations.Add(
      new DataRelation("parentChildCategories", set.Tables[0].Columns["CategoryParentID"], set.Tables[0].Columns["CategoryID"]) 
      ); 
     StringBuilder buildXml = new StringBuilder(); 
     StringWriter writer = new StringWriter(buildXml); 
     set.WriteXml(writer); 
     TreeView2.DataSource = new HierarchicalDataSet(set, "CategoryID", "CategoryParentID"); 
     TreeView2.DataBind(); 

我得到的錯誤:

These columns don't currently have unique values 

我相信這是因爲我的數據有多個單親家庭子女節點。這對我的應用程序來說很好 - 我不介意如果一行數據在我的TreeView的多個節點中呈現。

有人可以解釋這一點嗎?有一個DataSet呈現XML,其節點出現在多個位置似乎不合理,但我無法弄清楚如何去做。

謝謝,

馬特。

+0

,你能不能給我們一個更好的主意你的數據模型樣子? CategoryID不是這個表中的主鍵嗎? – 2010-06-18 13:43:58

+0

CategoryID是主鍵,但表中存在問題。我想知道是否應該刪除整個問題,因爲我不認爲它提供了實際的答案。 – 2010-07-19 07:28:56

回答

0

您可以在表中具有第三列(parentID +「_」+ categoryId),並在HierarchicalDataSet中使用該列。這將是通過你的樹

獨特的,你也需要將相同的父ID,以便它們匹配匹配的類別ID

+0

將此標記爲答案,因爲我以前使用過此解決方案,但是在這種情況下,數據太髒,無法正常工作。 – 2010-07-19 07:27:40

相關問題