首 页 ┆ 源码下载 ┆ IT学院 ┆ 字体下载 ┆ 模板下载 ┆ 源码发布 ┆ 广告合作 ┆ 网站地图 ┆ 虚拟主机 ┆ 中文域名
► 设为首页
► 加入收藏
► 联系我们
源码下载 >> ASP源码 | PHP源码 | ASP.net源码 | JSP源码 | CGI源码 | VC/C++源码 | VB源码 | Delphi源码 | Flash源码
文章学院 >> 网络编程 | 网页设计 | 图形图象 | 数据库 | 服务器 | 网络媒体 | 网络安全 | 操作系统 | 办公软件 | 软件开发 | 黑客知识
字体下载 >> 精制字体 | 非英字体 | 艺术字体 | 著名字体 | 哥特式 | 简单字体 | 手写体 | 节假日 | 图案字体 | 精度像素 | 中文字体
模板下载 >> 企业门户 | 数码网络 | 休闲娱乐 | 影视音乐 | 旅游名胜 | 文化艺术 | 电子商务 | 个性展示 | 登陆导航 | Flash模板
►►您当前的位置:源码园 → IT学院 → 网络编程 → NET专区 → 文章内容

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

作者:未知  来源:网上收集  发布时间:2007-9-20 1:47:40
 
  摘 要 本文介绍一种基于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)假如我们要建立如下图的数型结构

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

  图 1

  图1说明:器材管理、工地信息、公共信息是根节点,其余是子节点。

  2)在oracle数据库中建立如下图表的数据库表及字段

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

  图 2

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

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

  图 3

  图3说明:器材管理根节点的子节点,所属主单序号001表明它要生成在器材管理之下。

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

  图 4

  图4说明:工地信息根节点的子节点,所属主单序号002表明它要生成在工地信息之下。

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

  图 5ā8ǐ8?

  图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界面如下

  C#动态生成树型结构的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 = ā8ǐ8?"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(" <SCRIPT>alert('您没有可操作的菜单项,请与管理员联系!');</SCRIPT> ");
  }
  finally
  {
    if (objConn.State.ToString().Equals ("Open")) objConn.Close();
  }
 }
[] [返回上一页] [打 印]
  • 上一篇文章:你必须知道的.NET之class和struct
  • 下一篇文章:Spring集成XFire开发WebService

  • 相关文章:
  • 一个JSP编程进度条设计实例
  • 用Visual C#动态生成组件,请看!(一)
  • 用Visual C#动态生成组件,请看!(三)
  • 用Visual C#动态生成组件,请看!(二)
  • [图文]Photoshop个性桌面设计实例(5)
  • [组图]Photoshop个性桌面设计实例(4)
  • [组图]Photoshop个性桌面设计实例(3)
  • [组图]Photoshop个性桌面设计实例(2)
  • [图文]Photoshop个性桌面设计实例(1)
  • [组图]看磁盘设计实例-NETBIRD谈构图 下
  • [组图]看磁盘设计实例-NETBIRD谈构图 上
  • JSP编程进度条设计实例(5)
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号