C# treeview绑定

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                bindTree();
            }
        }
        private void bindTree()
        {
            ALIYUN_PIC.BLL.Folder_oper_BLL bll = new Folder_oper_BLL();
            
            DataTable dt = bll.PIC_Bind();//得到需要的datatable
            this.FillNode(dt, null);
        }
        private void FillNode(DataTable dt, TreeNode node)
        {
            DataView dv = new DataView(dt);
            if (node == null)    //根结点
            {
                dv.RowFilter = "PARENT_NODE=‘0‘";  //筛选到根结点的所有子节点
            }
            else  //不是根结点
            {
                dv.RowFilter = "PARENT_NODE=‘" + node.Value + "‘";   //筛选对应节点的所有子节点
            }
            foreach (DataRowView drv in dv)   //遍历填充节点的所有子节点,如果传入的节点node为叶子节点,遍历要退出,不再进行递归
            {
                TreeNode no = new TreeNode(drv["NODE_NAME"].ToString(), drv["id"].ToString());
                FillNode(dt, no);  //填充no节点的子节点
                if (node == null)
                {                  
                    this.PIC_TREE.Nodes.Add(no);
                }
                else
                {
                    node.ChildNodes.Add(no);
                }
            }
        }

时间: 2024-11-05 18:34:50

C# treeview绑定的相关文章

TreeView绑定XmlDataSource

<?xml version="1.0" encoding="utf-8" ?> <movies> <category id="category1" text="Action"> <movie id="movie1" text="Star Wars" /> <movie id="movie2" text="

WPF TreeView绑定字典集合

1 <TreeView Name="Tree" HorizontalAlignment="Left" Height="269" Width="292" > 2 3 <TreeView.ItemTemplate> 4 <HierarchicalDataTemplate ItemsSource="{Binding Value}"> 5 <StackPanel> 6

WPF TreeView绑定xaml的写法(转)

WPF TreeView绑定xaml的写法 2018年05月30日 10:16:27 dxm809 阅读数:441 方法一 <Window x:Class="TreeViewDemo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/x

WPF之TreeView绑定

新建解决方案: StudentBll.cs代码: 1 public class StudentBll 2 { 3 public List<TreeItem> infoList { get; set; } 4 public StudentBll() 5 { 6 infoList = new List<TreeItem>(); 7 infoList.Add(new TreeItem() { Self=new StudentInfo(0, "人员信息", "

winform treeview绑定数据 DOM操作

form1 public void treeView() { // datatable 定义变量接收 传归来的值 DataTable Father = new BuMenDA().ConSql(); //查询出来的的结果不可能为空 for循环一条条查出来 for (int a = 0; a <= Father.Rows.Count; a++) {// 定义新的节点接a行的 Name列 TreeNode fatherNode = new TreeNode(Father.Rows[a]["Na

WPF:TreeView绑定

namespace PostViewer { using System.Collections.ObjectModel; using System.ComponentModel; /// <summary> /// 数据类型ViewModel. /// </summary> public class VmTviDataType : ITreeItem { private bool mIsExpanded = true; private bool mIsSelected; /// &

C# treeview 绑定数据 【转】

private void bindTreeView1() { string sql = "select * from dm_category"; DataTable dt = db.ExecuteDataTable(sql, CommandType.Text, null); DataRow[] dr = dt.Select("parent_id is null"); for (int i = 0; i < dr.Length; i++) { TreeNode

wpf企业应用之带选项框的TreeView

wpf里面实现层次绑定主要使用HierarchicalDataTemplate,这里主要谈一谈带checkbox的treeview,具体效果见 wpf企业级开发中的几种常见业务场景. 先来看一下我的控件绑定,我这里实现的是模块权限的编辑.具体效果就是选中一个节点,后代节点.祖代节点状态都会发生相应变化,具体变化逻辑大家都懂的,描述起来很罗嗦. <TreeView Name="TreeView_Right" ItemsSource="{Binding ModuleRigh

重写TreeView模板来实现数据分层展示(一)

总想花些时间来好好总结一下TreeView这个WPF控件,今天来通过下面的这几个例子来好好总结一下这个控件,首先来看看一个常规的带虚线的TreeView控件吧,在介绍具体如何完成之前首先来看看最终实现的效果图吧! 然后我们来具体分析一下这个是怎样去实现的? 1 修改TreeView的模板层 其实TreeView中最重要的就是TreeViewItem项,这个决定了最终TreeView的展现方式,另外就是TreeView每展开子项时前面的ToggleButton的样式了,因为默认的TreeView样