2013-03-30 127 views
0

我有一個數據表TblTreeView,它有四列在TreeView控件中顯示數據表

ParentID(pk)| ParentName | LeftChildID | RightChildID

我想在樹視圖中顯示所有數據;

等作爲

ParentName

|

| _LeftChildID

|

| _RightChildID

我用

SqlDataAdapter dataAdapter = new SqlDataAdapter("Select * from tblTreeView", SqlCon); 
    DataSet dataSet = new DataSet(); 

    dataAdapter.Fill(dataSet); 

    TreeView1.DataSource = dataSet.Tables[0]; 
    TreeView1.DataBind(); 

然後出現錯誤: - HierarchicalDataBoundControl只接受實現IHierarchicalDataSource或IHierarchicalEnumerable數據源。 請給我一個代碼我怎麼做到這一點; 謝謝先生/女士

+0

如果名字不是PK,你如何找到左/右兒童?它不應該是LeftChildID和RightChildID嗎? –

+0

好吧,先生,但現在我得到了同樣的錯誤,如上所述: - HierarchicalDataBoundControl只接受實現IHierarchicalDataSource或IHierarchicalEnumerable的數據源 – Aman

+0

您使用什麼技術? WPF,WinForm,...? –

回答

0

我看到這篇文章是非常大的,從數據集數據綁定。

Binding the ASP.NET TreeView to a DataSet or an ObjectDataSource

我實現這個如下代碼..

private void GenerateCoaTree() 
    { 
     DataSet ds = new DataSet(); 
     dcAccountingDataContext dc = new dcAccountingDataContext(); 
     DataTable dt = dc.usp_RPT_ChartOfAccount_Select(null, CompanyID).CopyToDataTable(); 
     ds.Tables.Add(dt); 
     // The second parmeter for the ID of the element and the third parameter is the ID of the parent element in the tree. 
     TreeViewCoa.DataSource = new HierarchicalDataSet(ds, "AccountID", "COA_ID"); 
     TreeViewCoa.DataBind(); 
    } 

和我調用的Page_Load頁面內該方法用於結合時加載首次頁TreeView控件。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     GenerateCoaTree(); 
    } 
} 

<asp:TreeView ID="TreeViewCoa" runat="server"> 
    <DataBindings> 
     <asp:TreeNodeBinding DataMember="System.Data.DataRowView" 
      TextField="COADescription" ValueField="AccountID" /> 
    </DataBindings> 
</asp:TreeView> 

我希望這會幫助你解決你的問題:)。