虽然使用 Visual Studio .NET 将静态 TreeNote 添加到 TreeView 的过程很简单,但通常需要将内容动态地添加到 TreeView 中。例如,您将目录树信息存储到了数据库中,或是正在设计一个资源管理器风格的 Web 应用程式(在此应用程式中,用户能够浏览 Web 服务器的文档系统),这时您可能需要根据服务器的文档夹和文档来动态填充 TreeNote。本文就是使用C#.net语言通过编程方式,配合Oracle数据库实现一种动态的效果,达到动态的将TreeNote 添加到 TreeView 的目的。
1、 设计思路和方法
该程式设计思路和方法是:通过编程方式将TreeNote 添加到 TreeView 中。要将新的 TreeNote 添加到现有的 TreeNote 中,只需要使用 Nodes 属性的 Add() 方法。方法是使用 C# 代码将创建两个 TreeNote,并将第二个 TreeNote 添加为第一个 TreeNote 的子节点。然后,将第一个子节点添加到 TreeView 的根节点中。
2、研发实例及程式源码
2.1 使用前数据库和IE Web控件的准备工作
1)假如我们要建立如下图的数型结构

图 1
图1说明:器材管理、工地信息、公共信息是根节点,其余是子节点。
2)在oracle数据库中建立如下图表的数据库表及字段

图 2
图2 说明:在数据库中设计字段时将菜单等级确定下来,用流水号来表示唯一性。

图 3
图3说明:器材管理根节点的子节点,所属主单序号001表明他要生成在器材管理之下。
图 4
图4说明:工地信息根节点的子节点,所属主单序号002表明他要生成在工地信息之下。

图 5
图5说明:公共信息根节点的子节点,所属主单序号005表明他要生成在公共信息之下。
3)IE Web控件的准备工作
IE Web 控件能够在安装了 .NET Framework 版本 1.0 或 1.1 的 Web 服务器上使用,在内含代码的类中使用 IE Web 控件,首先需要右击 Reference(引用),然后选择 Add Reference(添加引用),将引用添加到 Microsoft.Web.UI.WebControls.dll 程式集中。然后,在内含代码的类中,假如使用的是 C# ,则添加 using Microsoft.Web.UI.WebControls;
2.2 界面和程式设计
1) 上传设计
1.1) Web界面如下

图 6
图6说明:在界面上对应配置控件TreeView1.
1.2) 动态生成TreeView源代码
| using Microsoft.Web.UI.WebControls;//添加控件的引用 private void GetTreeView()//程式开始 { try { string strSql = "SELECT DISTINCT Menu_id,Menu_name from docmodulemanager where Menu_level = 1 and sn in (" All.Substring(0,All.Length-1).ToString() ")"; OracleDataAdapter objAdapter = new OracleDataAdapter(strSql,objConn); DataSet ds = new DataSet(); ds.Clear (); objAdapter.Fill(ds,"temp"); DataTable dt = ds.Tables["temp"]; TreeView1.Nodes.Clear(); //建立根节点,遍历。 foreach(DataRow dr in dt.Rows) { TreeNode Root = new TreeNode(); Root.Text = dr["Menu_name"].ToString(); TreeView1.Nodes.Add(Root);//建立根节点 string str = "SELECT Menu_name,menu_addr,sn from docmodulemanager where upper_id = " dr["Menu_id"].ToString() " and sn in (" menu_sn.Substring(0,menu_sn.Length-1).ToString() ")" "order by menu_id,child_id"; OracleDataAdapter objAdapterNode = new OracleDataAdapter(str,objConn); DataSet dsNode = new DataSet(); dsNode.Clear (); objAdapterNode.Fill(dsNode,"tempNode"); DataTable dtNode = dsNode.Tables["tempNode"]; //建立子节点,遍历。 foreach(DataRow drNode in dtNode.Rows) { TreeNode Node = new TreeNode(); Node.Text = drNode["Menu_name"].ToString(); Node.Target = "mainbottom"; string Path = drNode["menu_addr"].ToString(); int menusn = Convert.ToInt32(drNode["sn"].ToString()); Node.NavigateUrl = "Transfer.aspx" "?menu_addr=" Path; Root.Nodes.Add(Node);//建立子节点 } } }
文章整理:西部数码--专业提供域名注册、虚拟主机服务 相关文章
热点关注
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源 网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧 行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒 网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它 服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护 软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer 网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash 程序设计 Java技术 C/C++ VB delphi 网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术 操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD |



