【问题标题】:How to bind a dataset with multiple tables to asp.net treeview control?如何将具有多个表的数据集绑定到 asp.net 树视图控件?
【发布时间】:2010-11-05 09:38:00
【问题描述】:

我有一个树视图控件,我必须绑定一个包含多个数据表的数据集,并在它们之间建立关系。

你能建议我怎么做吗,我尝试了很多方法,但没有一个证明有用......

谢谢

【问题讨论】:

  • 我没有找到我正在寻找的确切解决方案,所以我以编程方式自行填充树视图

标签: c# asp.net treeview dataset hierarchical-data


【解决方案1】:

使用“TreeView”控件绑定数据 Asp.net 2.0 http://www.codeproject.com/KB/aspnet/DataTreeView.aspx

【讨论】:

    【解决方案2】:

    试试这个代码,希望会有所帮助..我刚刚复制粘贴的代码...您可以更改列名..

     DataTable dt=new DataTable();
        DataTable dt1 = new DataTable();
        DataSet ds = new DataSet();
        ds.Tables.Add(dt);
        ds.Tables.Add(dt1);
        ds.Relations.Add("children", dt.Columns["GSICCodeID"], dt1.Columns["GSICCodeID"]);
        if (ds.Tables[0].Rows.Count > 0)
        {
            tvSicCode.Nodes.Clear();
            Int32 i = 0;
            foreach (DataRow masterRow in ds.Tables[0].Rows)
            {
                TreeNode masterNode = new TreeNode((string)masterRow["Description"], Convert.ToString(masterRow["GSicCodeID"]));
                tvSicCode.Nodes.Add(masterNode);
                foreach (DataRow childRow in masterRow.GetChildRows("Children"))
                {
                    TreeNode childNode = new TreeNode((string)childRow["SICCodeDesc"], Convert.ToString(childRow["SICCodeID"]));
    
                    if (Convert.ToString(ds.Tables[1].Rows[i]["CarrierSICCode"]) != "")
                        childNode.Checked = true;
    
                    masterNode.ChildNodes.Add(childNode);
                    i++;
                }
            }
    
            tvSicCode.CollapseAll();
        }
    

    【讨论】:

    • 这是正确的方法,但是如果我有两个以上的表,那么代码的大小会大得多,我想了一些方法来在数据集中创建关系,然后将其与树视图可以吗??
    • 好吧,你可以在数据集中添加两个以上的表,从而建立关系,但是我没有尝试你真正想要的,但你可以尝试......我认为你是试图填充许多级别的树视图,所以我认为你必须使用递归函数来填充树视图.....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 2011-08-11
    • 2010-10-16
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多