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控件"暗示了这是一个关于OPC客户端开发的项目,其中可能包含了使用TreeView控件的示例或库。OPC(OLE for Process Control)是工业自动化领域中用于数据...
在IT领域,C/S(Client/Server)模式是一种常见的网络应用程序架构,它将应用程序分为客户端(Client)和服务器端(Server)两部分。在这种模式下,客户端负责用户交互,而服务器端则处理数据存储和计算任务。在"**C...
#### 一、TreeView控件简介 `TreeView`控件是ASP.NET提供的一个用于显示层次结构数据的强大工具。它允许开发者以一种清晰的方式展示数据,并提供了一系列的功能,如展开、折叠节点等。在本案例中,我们将通过一个...
### TreeView 控件安装与使用指南 #### 一、前言 在开发Web应用程序时,TreeView 控件是一种非常有用的UI组件,它可以帮助开发者构建出直观的层级结构展示界面。本指南将详细介绍 TreeView 控件的安装步骤及注意...
"pb源码"标签表明这是用PowerBuilder的源代码编写,PowerBuilder是一种面向对象的可视化开发工具,主要用于构建企业级的客户端/服务器(C/S)应用。其特有的DataWindow控件和PowerScript语言使得开发人员能高效地...
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(Client/Server)架构中,实现角色权限菜单是一项关键任务,它涉及到系统安全性和用户体验。在本文中,我们将深入探讨如何在C# WinForm应用中设计和实现这样的功能,通过源代码来理解其背后的逻辑。 首先,...
在C/S架构的案例课程中,主界面的设计是用户交互的核心,它决定了用户如何方便地访问和操作系统。本详细设计说明书着重于界面模块的主界面布局,旨在创建一个直观、易用且功能丰富的界面,使用户能够轻松查看和配置...
本话题主要探讨了在C#中的TreeView控件以及XML的使用,这些都是.NET Framework开发中的重要组成部分。接下来,我们将深入理解这两个概念及其在实际项目中的应用。 首先,让我们来看看TreeView控件。TreeView是...
s001.ZIP 装入整个 C 盘目录到 TreeView(4KB) 73,j006_actresiz.ZIP FORM的大小改变的时候,里面的对象也会跟着放大缩小(附示例原程序)(30KB) 74,j005_TriSpace.ZIP 此控件是一个软件3D引擎,内有...
s001.ZIP 装入整个 C 盘目录到 TreeView(4KB) 73,j006_actresiz.ZIP FORM的大小改变的时候,里面的对象也会跟着放大缩小(附示例原程序)(30KB) 74,j005_TriSpace.ZIP 此控件是一个软件3D引擎,内有...
- **TreeView控件**: 构建树形结构的导航菜单。 - **添加导航内容**: 通过编程方式或XML文件定义树结构。 - **Web.sitemap**: 用于定义网站导航结构的XML文件。 #### 六、动态绑定主题 - **实现方法**: 定义不同...
### C#控件命名规范详解 #### 一、引言 在进行软件开发时,良好的命名规范对于提高代码可读性、便于维护至关重要。本文档将详细介绍C#中控件的命名规范,包括不同类型的控件如何命名以及遵循这些规则的意义。 ###...
s001.ZIP 装入整个 C 盘目录到 TreeView(4KB) 73,j006_actresiz.ZIP FORM的大小改变的时候,里面的对象也会跟着放大缩小(附示例原程序)(30KB) 74,j005_TriSpace.ZIP 此控件是一个软件3D引擎,内有...
选项D中,“char c[5]="ABCD",d[5]="ABCD"”是两个独立的声明,分别定义了两个字符数组`c`和`d`,并初始化为"ABCD"。这种写法并不等价于“char c[5]=d[5]="ABCD"”,因为后者语法上是不正确的,不能直接将字符串...
- **丰富的控件库**:内置控件能显著减少编码工作,如TreeView控件可以轻松实现树形导航,而无需编写复杂的JavaScript代码。 - **代码组织清晰**:通过代码后置,实现了业务逻辑和界面设计的分离,使开发者和设计...
网上选课系统是基于计算机和网络技术的选课系统,以C/S结构为基础,采用C#语言和SQL Server 2000关系数据库,旨在提高学校选课工作的效率和自动化程度。系统主要由学生选课子系统和管理员管理子系统两部分组成,通过...
该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...
- **方法**: 使用JavaScript或者C#结合ASP.NET服务器控件,遍历页面上的所有TextBox和ComboBox控件,并将其Text属性清空。 - **示例代码** (C#): ```csharp foreach (Control control in this.Controls) { if ...
丰富的控件库极大地简化了编码工作,例如,使用TreeView控件可以快速实现树形目录功能,而无需编写大量的JavaScript代码。 代码后置是ASP.NET的另一个亮点,它将业务逻辑代码与显示逻辑分开,使得页面设计人员和...