VS2005[C#] B/S C/S 运用递归 动态绑定树

转载 2007年09月13日 16:33:00
今天无意当中翻到了 以前用VS2005 开发的 B/S 动态绑定树的例子..
还是自己的笔记好.一下子 就看懂了..马上又开发了一个 C/S 结构的供大家参考..
前面发过 2 篇关于树的例子..资源管理器还不错..另外一篇就差了..
但是对初学者来说 非常好理解..

另外 B/S 树会刷新..C/S 树也会刷新...为了不让它刷新..添加,修改.删除 节点的时候..树和数据库是独立的..,
就是不用先操作数据库,然后重新绑定..
2者独立操作. 运用BeginUpdate() he EdnUpdate() 防止树刷新...

递归绑定树
这种方法只适合 一个表总的某一列引用自己的主键的情况..
C/S:
 //创建根节点
    public void BindCategoryTreeVew(TreeView treeView, bool isExpanded, string sSelectedData)
    {
        //将获取的数据转换为 一个DataTable
        DataTable dt=GetCategorys().Tables[0];
        treeView.Nodes.Clear();//清空 树的所有节点
        //获取与排序顺序中的筛选器以及指定的状态相匹配的所有System.Data.DataRow 数组
        DataRow []rowlist=dt.Select("ParentID='-1'");
        if (rowlist.Length <= 0) return;
        //创建跟节点
        TreeNode rootNode = new TreeNode();
        //设置根节点的属性
        rootNode.Text = rowlist[0]["Desn"].ToString();
        //设置根节点的值
        rootNode.Text = rowlist[0]["CategoryID"].ToString();
        rootNode.Expanded = isExpanded;
        rootNode.Selected = true;
        //添加跟节点
        CategoryView.Nodes.Add(rootNode);
        CreateChildNode(rootNode, dt, isExpanded, sSelectedData);

     }
    private void CreateChildNode(TreeNode parentNode, DataTable dt, bool isExpanded, string sSelecedData)
    {
        //选择数据,添加排序表达市
        DataRow [] rowList = dt.Select("ParentID=" + Convert.ToInt32(parentNode.Value));
        foreach (DataRow row in rowList)
        {
            //创建一个新的节点了
            TreeNode node = new TreeNode();
            node.Text = row["Desn"].ToString();
            node.Value = row["CategoryID"].ToString();
            node.Expanded = isExpanded;
            if (node.Value == sSelecedData)
            {
                node.Selected = true;
            }
            parentNode.ChildNodes.Add(node);
            //递归调用,创建其他节点
            CreateChildNode(node,dt,isExpanded,sSelecedData);
        }
    }
B/S:
  //创建根节点
    public void BindCategoryTreeVew(TreeView treeView, bool isExpanded, string sSelectedData)
    {
        //将获取的数据转换为 一个DataTable
        DataTable dt=GetCategorys().Tables[0];
        treeView.Nodes.Clear();//清空 树的所有节点
        //获取与排序顺序中的筛选器以及指定的状态相匹配的所有System.Data.DataRow 数组
        DataRow []rowlist=dt.Select("ParentID='-1'");
        if (rowlist.Length <= 0) return;
        //创建跟节点
        TreeNode rootNode = new TreeNode();
        //设置根节点的属性
        rootNode.Text = rowlist[0]["Desn"].ToString();
        //设置根节点的值
        rootNode.value = rowlist[0]["CategoryID"].ToString();
        rootNode.Expanded = isExpanded;
        rootNode.Selected = true;
        //添加跟节点
        CategoryView.Nodes.Add(rootNode);
        CreateChildNode(rootNode, dt, isExpanded, sSelectedData);

     }
    private void CreateChildNode(TreeNode parentNode, DataTable dt, bool isExpanded, string sSelecedData)
    {
        //选择数据,添加排序表达市
        DataRow [] rowList = dt.Select("ParentID=" + Convert.ToInt32(parentNode.Value));
        foreach (DataRow row in rowList)
        {
            //创建一个新的节点了
            TreeNode node = new TreeNode();
            node.Text = row["Desn"].ToString();
            node.Value = row["CategoryID"].ToString();
            node.Expanded = isExpanded;
            if (node.Value == sSelecedData)
            {
                node.Selected = true;
            }
            parentNode.ChildNodes.Add(node);
            //递归调用,创建其他节点
            CreateChildNode(node,dt,isExpanded,sSelecedData);
        }
    }

 

相关文章推荐

C#(C Sharpe)百度云推送sdk(DLL版)vs2005可用

在网上找了好久也没找到vs2005的sdk,经过1天的修改后 原来的sdk终于可以放到vs2005上运行了,给大家分享下下先。 (vs2005及以上都能运行) 【引用2个DLL,直接玩转推送...

修改vs2005,vs2008,vs2010调试默认浏览器(转自:http://hi.baidu.com/iaskall/blog/item/17c05a60b35f0551eaf8f803.htm)

在用VS2005开发asp.net时,一按F5,默认使用IE打开待调试的网站,但最近安装VS2010后,用VS2010开发asp.net时,一按F5,默认使用Chrome打开待调试网站,甚是不习惯(尽...
  • lslxdx
  • lslxdx
  • 2011年08月24日 15:50
  • 6591

将对象绑定到窗体或将窗体数据赋值给对象(B/S、C/S)

B/S模式: /* 版权信息:版权所有(C) 2007 IntelligenceSoft Corporation 作 者:ruijc 完成日期:2007-04-11 内容摘要:进行实体对象和页...
  • ruijc
  • ruijc
  • 2011年11月23日 10:54
  • 523

C#动态递归绑定TreeView(WinForm)

定义一个单位数据表,用来存储单位信息,程序运行时要从数据库里取出单位信息动态绑定在 TreeView 树形菜单。这个数据表的结构是这样的: 下面是相关的程序代码: 1: ...
  • e_wsq
  • e_wsq
  • 2012年02月04日 14:33
  • 1095

C# TreeView无限递归绑定 CheckBox

  • 2013年01月30日 09:45
  • 6KB
  • 下载

VS 2005中DataGrid动态绑定数据

关于DataGrid动态绑定的情况,我们会经常遇到,比如我们要绑定的数据结构基本一样,这样我们可以避免多个DataGrid重复绑定的情况 我们可以利用一个DataGrid来动态绑定 -------...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VS2005[C#] B/S C/S 运用递归 动态绑定树
举报原因:
原因补充:

(最多只允许输入30个字)