频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发设计技术教程 -> 网站设计相关 -> C#动态生成树型结构的Web程序设计

C#动态生成树型结构的Web程序设计

作者:未知  来源:www.jz123.cn  发布时间:2007-8-11 10:14:25  发布人:圈圈

减小字体 增大字体

摘 要 本文介绍一种基于web方式BS应用模式下,使用C#.net编程工具实现oracle数据库记录自动生成TreeView树型结构的程序设计。

  关键词 c# ;动态;树型;程序设计

  许多应用软件的程序设计,我们都希望能像Windows资源管理器那样将其驱动器和其下的文件及文件夹按照层次结构来安排。在C/S条件下这些很容易实现,那么在B/S的Web方式下,我们实现起来就不是特别容易。针对这个问题,在 2002 年,Microsoft? 发布了四种 ASP.NET Web 控件,用于为使用 Microsoft Internet Explorer 的 Web 访问者提供更好的体验。这些 Web 控件称为 Internet Explorer Web 控件,也简称为 IE Web 控件,其中就包含了TreeView Web 控件 ,它就为我们提供了一种按层次结构显示信息的方式。TreeView控件包含了称做“节点”(node)的一些条目的一个列表。每一个节点都可以有自己的节点集合,从而提供了一种更深层的数据定义。每个节点都可以被折叠起来,从而允许访问者在一个TreeView控件中查找,只看他所感兴趣的那一级的数据。就像Windows的资源管理器一样。只不过在使用前要安装IE Web Controls,并配置好运行环境后才能使用,使用Visual Studio .NET,则静态指定 TreeView 结构就像填写几份表格一样简单。

  虽然使用 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);//建立子节点
  }
 }
}
catch
{
 Response.Write(" alert('您没有可操作的菜单项,请与管理员联系!'); ");
}
finally
{
 if (objConn.State.ToString().Equals ("Open")) objConn.Close();
}
}

将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· 加州大学遭黑客入侵 80万..
· 在Linux环境下安装JSP(一..
· 结合PHP使用HTML表单(1)..
· 阿里管理软件或将变相免..
· 07虚机市场再掀风云 联动..
· 用SQL Server 2005同义字..
· 用 Photoshop 绘制的芭比..
· 剖析SQL Server数据库扩..
· 扩展用户数量 Napster签..
· 动态gif卡通头像2
· 用ISAPIfilter使INC、AS..
· 海缆中断国外杀毒软件无..
· 模拟OICQ的实现思路和核..
· ADSI及其在WEB上的应用
· 将VB中的CLASS结合到VBs..
· hdsi2.0 sql注入部分抓包..
相关文章
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号