博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TreeView绑定数据库数据
阅读量:4347 次
发布时间:2019-06-07

本文共 1556 字,大约阅读时间需要 5 分钟。

TreeView控件可以通过递归方式绑定数据库数据,代码如下:

    void Page_Load()

    {
        if (!Page.IsPostBack)
            PopulateTreeView();
    }

    private void PopulateTreeView()

    {
        DataTable treeViewData = GetTreeViewData();
        AddTopTreeViewNodes(treeViewData);  //绑定父节点
    }

    private DataTable GetTreeViewData()    //获取数据

    {
        string selectCommand = "SELECT MessageId,ParentId,Subject FROM Discuss";
        string conString = WebConfigurationManager.ConnectionStrings["Discuss"].ConnectionString;
        SqlDataAdapter dad = new SqlDataAdapter(selectCommand, conString);
        DataTable dtblDiscuss = new DataTable();
        dad.Fill(dtblDiscuss);
        return dtblDiscuss;
    }

    private void AddTopTreeViewNodes(DataTable treeViewData)

    {
        DataView view = new DataView(treeViewData);
        view.RowFilter = "ParentID IS NULL";
        foreach (DataRowView row in view)
        {
            TreeNode newNode = new TreeNode(row["Subject"].ToString(), row["MessageId"].ToString());
            TreeView1.Nodes.Add(newNode);
            AddChildTreeViewNodes(treeViewData, newNode);//绑定子节点
        }

    }

    private void AddChildTreeViewNodes(DataTable treeViewData, TreeNode parentTreeViewNode)

    {
        DataView view = new DataView(treeViewData);
        view.RowFilter = "ParentID=" + parentTreeViewNode.Value;
        foreach (DataRowView row in view)
        {
            TreeNode newNode = new TreeNode(row["Subject"].ToString(), row["MessageId"].ToString());
            parentTreeViewNode.ChildNodes.Add(newNode);
            AddChildTreeViewNodes(treeViewData, newNode);//递归,绑定子节点
        }
    }

数据表中记录通过ParentId字段指定父节点。

详细介绍可以参考:《ASP.NET2.0揭秘卷1》

 树节点TreeNode的重要属性:

Text:节点显示内容

Value:节点对应值

NavigateUrl:导航页面Url

Target:目标框架

ImageUrl:节点图像

转载于:https://www.cnblogs.com/zhouhb/archive/2012/02/11/2346521.html

你可能感兴趣的文章
Solr
查看>>
MySQL binlog数据库同步技术总结
查看>>
hdu1693 eat the trees
查看>>
ECMAScript5学习笔记-第1章至第9章
查看>>
java并发:join源码分析
查看>>
算法设计--查找无序数组中第K大的数字
查看>>
项目中使用WCF替换asmx Web service总结
查看>>
CriminalIntent项目开发笔记(四)----使用fragment argument
查看>>
hdu 1055 Color a Tree(树上贪心,4级)
查看>>
nodejs 之 fs模块
查看>>
转:Fuzzing Apache httpd server with American Fuzzy Lop + persistent mode
查看>>
史上最简短的文章长内容的代码,转
查看>>
网络流二十四题 分配问题
查看>>
NetWaiting 完美卸载方法
查看>>
必做作业2:视频剪辑软件调研
查看>>
[学习笔记]Javascript的包装对象
查看>>
第三次作业 个人统计分析报告
查看>>
ajax传参里含有特殊字符的坑
查看>>
python3.5 字典遍历
查看>>
proxy跨域
查看>>