• Treeview控件C/S


    1、数据库设计
    //  CREATE TABLE [SY_Department] (
    //  [DepID] [varchar] (8) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    //               [DepName] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    //                               [ParentID] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL ,
    //  [Memo] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
    //  CONSTRAINT [PK_SY_Department] PRIMARY KEY  CLUSTERED
    //                (
    //                [DepID]
    //                )  ON [PRIMARY]
    //  ) ON [PRIMARY]
    //  GO
    //
    //

    2、代码说明

      private void BindDep()
      {
       SysCommon.AccessBase.SqlHelp sp=new SysCommon.AccessBase.SqlHelp();
       DataSet ds = sp.GetDataSet("select depid,depname,parentid,memo from sy_department");
       DataTable dt = ds.Tables[0];
       if(dt.Rows.Count<=0) return ;
       treeView1.Nodes.Clear();

       
       //插入根节点
       DataRow[] drArr = dt.Select("depid='0'", "depid asc");
       System.Windows.Forms.TreeNode nd1=new TreeNode();
       nd1.Tag=drArr[0]["depid"].ToString();
       nd1.Text=drArr[0]["depname"].ToString();
       treeView1.Nodes.Add(nd1);
       //插入子节点
       CreateTreeNode(ref nd1, dt);
       treeView1.ExpandAll();
       treeView1.CheckBoxes=true;
      }

      private void CreateTreeNode(ref TreeNode tnParent, DataTable dt)
      {
       DataRow[] drArr = dt.Select("parentid = '" + tnParent.Tag + "'", "depid asc");
       if (drArr.Length == 0) return;

       for (int i = 0; i < drArr.Length; i++)
       {
        DataRow row = drArr[i];
        System.Windows.Forms.TreeNode nd=new TreeNode();
        nd.Tag=row["depid"].ToString();
        nd.Text=row["depname"].ToString();
        tnParent.Nodes.Add(nd);
        CreateTreeNode(ref nd, dt);
       }
      }
       //选中节点或取消选中节点
      private void CheckChilds(TreeNode tnParent)
      {
       foreach(TreeNode nd in tnParent.Nodes)
       {
        nd.Checked=tnParent.Checked;
        //CheckChilds(nd);
       }
      }
      private void treeView1_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e)
      {
       TreeNode pnd=e.Node;
       CheckChilds(pnd);
      }
       //遍历所有节点得到选中的节点放入ArrayList中
      private void GetCheckNodes(TreeNode pnd,ref ArrayList list)
      {
       foreach(TreeNode nd in pnd.Nodes)
       {
        if(nd.Checked)
        {
         list.Add(nd.Tag.ToString());
        }
        GetCheckNodes(nd,ref list);
       }
      }

  • 相关阅读:
    MySQL中查询表及索引大小的方法
    转:一套大而全的系统架构体系与具体落地方案
    [转]1年时间业务量疯长40倍,谈人人车的平台架构演进之路
    [转]如何实现“持续集成”?闲鱼把研发效率翻了个翻
    微服务介绍
    Python2.X和Python3.X的w7同时安装使用
    黑客与画家阅读体会
    Open Source 开发工具集
    volatile和不加volatile的区别
    VMware改变硬盘空间大小的方法
  • 原文地址:https://www.cnblogs.com/kuailewangzi1212/p/819938.html
Copyright © 2020-2023  润新知