c#动态生成树型结构的web程式设计_c#应用
2008-02-23 05:42:45来源:互联网 阅读 ()
虽然使用 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);//建立子节点 } } } 标签: 版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
相关文章
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设 网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源 网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它 服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护 软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash 热门词条
最新资讯
热门关注
热门标签
|