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()和 ...
随机推荐
- G面经prepare: Set Intersection && Set Difference
求两个sorted数组的intersection e.g. [1,2,3,4,5],[2,4,6] 结果是[2,4] difference 类似merge, 分小于等于大于三种情况,然后时间O(m+n ...
- Leetcode: Number of Islands II && Summary of Union Find
A 2d grid map of m rows and n columns is initially filled with water. We may perform an addLand oper ...
- [原创]java WEB学习笔记67:Struts2 学习之路-- 类型转换概述, 类型转换错误修改,如何自定义类型转换器
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Java基础(9):Java生成随机数一定范围内的数的一个典型例子
题目:编写一个JAVA程序,创建指定长度的 int 型数组,并生成 100 以内随机数为数组中的每个元素赋值,然后输出数组 note: 通过 (int)(Math.random() * 100) 生成 ...
- sqlserver 存储过程 以及统计整个数据库数据
drop proc test 删除存储过程 go 用于在 SSMS 和 SQLCMD 中将其之前的 T-SQL 语句作为一个批处理提交给 SQL Server 实例.GO 不是 T-SQL 语句,只 ...
- javascript浏览器对象
window对象 1.window对象 window对象是BOM的核心,window对象指当前的浏览器窗口 所有JS全局对象.函数以及变量均自动成为window对象的成员 全局变量是window对象的 ...
- PAT乙级 1023. 组个最小数 (20)
1023. 组个最小数 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 给定数字0-9各若干个.你可以以 ...
- [OrangePi] Features (the features of Loboris's Images)
boot0_sdcard.fex, u-boot.fex and kernel (uImage) created from sources kernel built with many feature ...
- POJ - 2041Unreliable Message
这里的算法非常简单,就是“模拟”,注意编写每个传令官的算法时先分开测试,放在一起就会混淆. POJ - 2041Unreliable Message Time Limit: 1000MS Memory ...
- Windows 7 64位下使用ADB驱动
早上在cmd输入adb devices想查询正在执行的虚拟器有多少个,但是执行结果出现 C:\Users\Administrator>adb deviceserror: C:\Users\Adm ...