`

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);
   }
  }

分享到:
评论

相关推荐

    neewspevelop.rar_calmtw8_cattle24s_opc_treeview控件

    标题中的"neewspevelop.rar_calmtw8_cattle24s_opc_treeview控件"暗示了这是一个关于OPC客户端开发的项目,其中可能包含了使用TreeView控件的示例或库。OPC(OLE for Process Control)是工业自动化领域中用于数据...

    C/S模式的组织架构图

    在IT领域,C/S(Client/Server)模式是一种常见的网络应用程序架构,它将应用程序分为客户端(Client)和服务器端(Server)两部分。在这种模式下,客户端负责用户交互,而服务器端则处理数据存储和计算任务。在"**C...

    用TreeView实现树菜单

    #### 一、TreeView控件简介 `TreeView`控件是ASP.NET提供的一个用于显示层次结构数据的强大工具。它允许开发者以一种清晰的方式展示数据,并提供了一系列的功能,如展开、折叠节点等。在本案例中,我们将通过一个...

    treeview安装说明

    ### TreeView 控件安装与使用指南 #### 一、前言 在开发Web应用程序时,TreeView 控件是一种非常有用的UI组件,它可以帮助开发者构建出直观的层级结构展示界面。本指南将详细介绍 TreeView 控件的安装步骤及注意...

    uo_treeview树形控件对象

    "pb源码"标签表明这是用PowerBuilder的源代码编写,PowerBuilder是一种面向对象的可视化开发工具,主要用于构建企业级的客户端/服务器(C/S)应用。其特有的DataWindow控件和PowerScript语言使得开发人员能高效地...

    Windows前缀.txt

    Windows窗体前缀的说明,标准控件 1 btn Button 2 chk CheckBox 3 ckl CheckedListBox 4 cmb ComboBox 5 dtp DateTimePicker 6 lbl Label 7 llb LinkLabel 8 lst ListBox 9 lvw ListView 10 mtx ...

    C/S中实现角色权限菜单

    在C/S(Client/Server)架构中,实现角色权限菜单是一项关键任务,它涉及到系统安全性和用户体验。在本文中,我们将深入探讨如何在C# WinForm应用中设计和实现这样的功能,通过源代码来理解其背后的逻辑。 首先,...

    案例课程C-S架构-1期 详细设计书2-界面模块(主界面布局).pdf

    在C/S架构的案例课程中,主界面的设计是用户交互的核心,它决定了用户如何方便地访问和操作系统。本详细设计说明书着重于界面模块的主界面布局,旨在创建一个直观、易用且功能丰富的界面,使用户能够轻松查看和配置...

    Accp5.0二期c#TreeView和XML的知识

    本话题主要探讨了在C#中的TreeView控件以及XML的使用,这些都是.NET Framework开发中的重要组成部分。接下来,我们将深入理解这两个概念及其在实际项目中的应用。 首先,让我们来看看TreeView控件。TreeView是...

    VB编程资源大全(控件 其它3)

    s001.ZIP 装入整个 C 盘目录到 TreeView(4KB) 73,j006_actresiz.ZIP FORM的大小改变的时候,里面的对象也会跟着放大缩小(附示例原程序)(30KB) 74,j005_TriSpace.ZIP 此控件是一个软件3D引擎,内有...

    VB编程资源大全(控件 其它1)

    s001.ZIP 装入整个 C 盘目录到 TreeView(4KB) 73,j006_actresiz.ZIP FORM的大小改变的时候,里面的对象也会跟着放大缩小(附示例原程序)(30KB) 74,j005_TriSpace.ZIP 此控件是一个软件3D引擎,内有...

    C#控件命名规范

    ### C#控件命名规范详解 #### 一、引言 在进行软件开发时,良好的命名规范对于提高代码可读性、便于维护至关重要。本文档将详细介绍C#中控件的命名规范,包括不同类型的控件如何命名以及遵循这些规则的意义。 ###...

    VB编程资源大全(控件 其它2)

    s001.ZIP 装入整个 C 盘目录到 TreeView(4KB) 73,j006_actresiz.ZIP FORM的大小改变的时候,里面的对象也会跟着放大缩小(附示例原程序)(30KB) 74,j005_TriSpace.ZIP 此控件是一个软件3D引擎,内有...

    2021-2022计算机二级等级考试试题及答案No.10697.docx

    选项D中,“char c[5]="ABCD",d[5]="ABCD"”是两个独立的声明,分别定义了两个字符数组`c`和`d`,并初始化为"ABCD"。这种写法并不等价于“char c[5]=d[5]="ABCD"”,因为后者语法上是不正确的,不能直接将字符串...

    北大青鸟ACPP5.0(asp.net PPT第一章)

    - **丰富的控件库**:内置控件能显著减少编码工作,如TreeView控件可以轻松实现树形导航,而无需编写复杂的JavaScript代码。 - **代码组织清晰**:通过代码后置,实现了业务逻辑和界面设计的分离,使开发者和设计...

    网上选课系统.doc

    网上选课系统是基于计算机和网络技术的选课系统,以C/S结构为基础,采用C#语言和SQL Server 2000关系数据库,旨在提高学校选课工作的效率和自动化程度。系统主要由学生选课子系统和管理员管理子系统两部分组成,通过...

    vc++ 开发实例源码包

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    北大青鸟asp.net PPT学习

    丰富的控件库极大地简化了编码工作,例如,使用TreeView控件可以快速实现树形目录功能,而无需编写大量的JavaScript代码。 代码后置是ASP.NET的另一个亮点,它将业务逻辑代码与显示逻辑分开,使得页面设计人员和...

    EhLib5.0.13 最新的ehlib源码

    printer facilities (GetDeviceCaps, e.t.c.). Global function PrinterPreview returns default PrinterPreview object and shows data in default preview form. TDBEditEh component represents a single or ...

Global site tag (gtag.js) - Google Analytics