20151124002 treeView 数型菜单的操作
20151124002 treeView 数型菜单的操作
protected void FillTree()
{
SqlConnection1 = new System.Data.SqlClient.SqlConnection();
SqlConnection1.ConnectionString = str_connect_88;
string sql_text1 = " select distinct [per_dpt] FROM [kqdata].[dbo].[personal] ";
this.SqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter(sql_text1, SqlConnection1);
this.DataSet1 = new System.Data.DataSet();
this.SqlConnection1.Open();
this.SqlDataAdapter1.Fill(DataSet1, "personal");
this.SqlConnection1.Close();
Int32 int_count = DataSet1.Tables[0].Rows.Count;
TreeNode tmp;
tmp = new TreeNode("xx公司");
treeView1.Nodes.Add(tmp);
treeView1.SelectedNode = tmp;
//dgv_from.DataSource = DataSet1.Tables[0];
for (int i = 0; i < int_count; i++)
{
TreeNode tn = new TreeNode();
tn.Text = DataSet1.Tables[0].Rows[i]["per_dpt"].ToString();
treeView1.SelectedNode.Nodes.Add(tn);
// 2
string sql_text2 = " select distinct [per_zhu] FROM [kqdata].[dbo].[personal] where [per_dpt] = '" + tn.Text + "' ";
this.SqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter(sql_text2, SqlConnection1);
this.DataSet2 = new System.Data.DataSet();
this.SqlConnection1.Open();
this.SqlDataAdapter1.Fill(DataSet2, "personal");
this.SqlConnection1.Close();
treeView1.SelectedNode = tn;
Int32 int_count2 = DataSet2.Tables[0].Rows.Count;
if (int_count2 > 0)
{
for (int i2 = 0; i2 < int_count2; i2++)
{
TreeNode tn2 = new TreeNode();
tn2.Text = DataSet2.Tables[0].Rows[i2]["per_zhu"].ToString();
if (tn2.Text.Trim() != "")
{
treeView1.SelectedNode.Nodes.Add(tn2);
}
treeView1.SelectedNode = tn;
// 3
string sql_text3 = " select distinct [per_ban] FROM [kqdata].[dbo].[personal] where [per_zhu] = '" + tn2.Text + "' ";
this.SqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter(sql_text3, SqlConnection1);
this.DataSet3 = new System.Data.DataSet();
this.SqlConnection1.Open();
this.SqlDataAdapter1.Fill(DataSet3, "personal");
this.SqlConnection1.Close();
treeView1.SelectedNode = tn2;
Int32 int_count3 = DataSet3.Tables[0].Rows.Count;
if (int_count3 > 0)
{
for (int i3 = 0; i3 < int_count3; i3++)
{
TreeNode tn3 = new TreeNode();
tn3.Text = DataSet3.Tables[0].Rows[i3]["per_ban"].ToString();
if (tn3.Text.Trim() != "")
{
treeView1.SelectedNode.Nodes.Add(tn3);
}
treeView1.SelectedNode = tn2;
}
}
treeView1.SelectedNode = tn;
}
}
treeView1.SelectedNode = tmp;
//
}
//展开组件中的所有节点
treeView1.SelectedNode.ExpandAll();
//定位根节点
treeView1.SelectedNode = treeView1.Nodes[0];
}
private void Frm_Main_Load(object sender, EventArgs e)
{
FillTree();
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Action == TreeViewAction.ByMouse)//判断是否由鼠标触发的
{
if (treeView1.SelectedNode != null)
{
MessageBox.Show(treeView1.SelectedNode.Text);
}
}
}
20151124002 treeView 数型菜单的操作的更多相关文章
- linux设备驱动归纳总结(三):2.字符型设备的操作open、close、read、write【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-59417.html linux设备驱动归纳总结(三):2.字符型设备的操作open.close.rea ...
- JS树型菜单
本树型菜单主要实现功能有:基本的树型菜单,可勾选进行多选项操作. 本树型菜单适合最初级的学者学习,涉及内容不难,下面看代码. 首先看View的代码,第一个<div>用来定义树显示的位置和i ...
- C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用心得
在网上查了很多,发现没有讲述关于--C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用--的资料 自己研究了一个使用方法.下面来看看. 我有两个窗体:LOGINFRM,M ...
- 【Linux开发】linux设备驱动归纳总结(三):2.字符型设备的操作open、close、read、write
linux设备驱动归纳总结(三):2.字符型设备的操作open.close.read.write 一.文件操作结构体file_operations 继续上次没讲完的问题,文件操作结构体到底是什么东西, ...
- 下拉的DIV+CSS+JS二级树型菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- oracle使用connect by进行级联查询 树型菜单
Oracle使用connect by进行级联查询 树型菜单(转) connect by可以用于级联查询,常用于对具有树状结构的记录查询某一节点的所有子孙节点或所有祖辈节点. 来看一个示例,现假设我们拥 ...
- AutoIT: 对文件系统的菜单进行操作,有专门的语句WinMenuSelectItem
对文件系统的菜单进行操作,有专门的语句WinMenuSelectItem: Run("notepad.exe") WinWaitActive("[CLASS:Notepa ...
- WordPress隐藏后台左侧菜单如何操作
前面我们讲了wordpress后台添加左侧边栏菜单如何操作,反过来如果想要隐藏一些菜单怎么实现呢?我们可以通过remove_menu_page()函数来完成,将如下代码加入到当前主题function. ...
- wordpress后台添加左侧边栏菜单如何操作
我们有时为了方便操作会把一些特定的链接添加到wordpress后台左侧菜单栏中,这个要如何实现呢?其实不会很难,使用两个WordPress内置函数就可以解决问题,分别是add_menu_page()和 ...
随机推荐
- 自动备份sqlexpress 数据库脚本
Create PROCEDURE [dbo].[usp_BackupDatabase] @databaseName sysname,@backupPath nvarchar(255), @backup ...
- PostgreSQL Replication之第十二章 与Postgres-XC一起工作(5)
12.5 创建表和发送查询 介绍了Postgres-XC以及其底层的思想之后,是时候创建我们的第一个表,看看集群将如何表现.下面的例子演示了一个简单的表.将使用id列的哈希键来分布它: test=# ...
- ADO.net 防止SQL 字符串注入攻击
规避SQL注入 如果不规避,在黑窗口里面输入内容时利用拼接语句可以对数据进行攻击 如:输入Code值 p001' union select * from Info where '1'='1 //这样可 ...
- zjuoj 3610 Yet Another Story of Rock-paper-scissors
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3610 Yet Another Story of Rock-paper-sc ...
- [分享]关于windows下的小技巧
----1.首先,决定您要增加到菜单中的文件类型,以及启动这类文件的应用程序.如果是某些在启动时会自动打开的新文件或让您可以立即使用的应用程序,如记事本.写字板或画图等,就不需要特别的准备工作.但如果 ...
- Android--HTTP协议
1 package com.http.get; 2 3 import java.io.FileOutputStream; 4 import java.io.IOException; 5 import ...
- struts_23_xwork校验器列表使用例子
required 必填校验器 <field-validator type="required"> <message>性别不能为空!</message& ...
- php session 跨子域和跨服务器解决方式
Session主要分两部分: 一个是Session数据,该数据默认情况下是存放在服务器的tmp文件下的,是以文件形式存在 另一个是标志着Session数据的Session Id,Sess ...
- 夺命雷公狗—angularjs—12—get参数的接收
我们在实际的开发中get和post的交互都是离不开的,我们先来研究下get参数是如何接收到的.. 而且在实际开发中利用json来进行传递参数也是比较多的,这里我们就以get来接收参数为列.. 先创建一 ...
- PAT乙级 1016. 部分A+B (15) C语言实现
1016. 部分A+B (15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 正整数A的“DA(为1位整数)部 ...