0

我有一个 DataTable TblTreeView 它有四列

父母ID(pk) | 家长姓名| 左孩子ID | RightChildID

我想在树视图中显示所有数据;

像这样

父母名字

|

|_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 的数据源。请给我执行此操作的代码;谢谢先生/女士

4

2 回答 2

2

这些示例可能是指南将
IHierarchy 支持实施到您的自定义集合
中匹配的分层中继器和附件

于 2013-03-30T19:50:30.090 回答
1

我看到这篇文章非常适合从数据集中绑定数据。

将 ASP.NET TreeView 绑定到 DataSet 或 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>

我希望这将帮助您解决您的问题:)。

于 2014-10-23T12:03:51.007 回答