NET平台下Web树形结构程序设计
李洪根
CREATE TABLE [dbo].[tbTree] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [Context] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [ParentID] [int] NULL ) ON [PRIMARY]
在表中添加如下记录:
SET IDENTITY_INSERT tbtree ONinsert tbtree (ID,Context,ParentID) values ( 1,'中国',0)insert tbtree (ID,Context,ParentID) values ( 2,'北京',11)insert tbtree (ID,Context,ParentID) values ( 3,'天津',11)insert tbtree (ID,Context,ParentID) values ( 4,'河北省',1)insert tbtree (ID,Context,ParentID) values ( 5,'广东省',1)insert tbtree (ID,Context,ParentID) values ( 6,'广州',5)insert tbtree (ID,Context,ParentID) values ( 7,'四川省',1)insert tbtree (ID,Context,ParentID) values ( 8,'成都',7)insert tbtree (ID,Context,ParentID) values ( 9,'深圳',5)insert tbtree (ID,Context,ParentID) values ( 10,'石家庄',4)insert tbtree (ID,Context,ParentID) values ( 11,'辽宁省',1)insert tbtree (ID,Context,ParentID) values ( 12,'大连',11)insert tbtree (ID,Context,ParentID) values ( 13,'上海',1)insert tbtree (ID,Context,ParentID) values ( 14,'天河软件园',6)insert tbtree (ID,Context,ParentID) values ( 15,'汕头',5)SET IDENTITY_INSERT tbtree off
下载地址 http://msdn.microsoft.com/downloads/samples/internet/ASP_DOT_NET_ServerControls/WebControls/default.asp 安装后,通过“自定义工具箱”->“.net框架组件”把TreeView添加到工具箱里。 新建一个项目,选择Visual Basic.Net 工程Asp.net Web应用程序,在页面上拖画一个TreeView控件。 Html页:
后台代码:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim ds As New DataSet() Dim CN As New SqlConnection() Try '初始化连接字符串 CN.ConnectionString = "data source=pmserver;initial catalog=Benchmark;persist security info=False;user id=sa;Password=sa;" CN.Open() Dim adp As SqlDataAdapter = New SqlDataAdapter("select * from tbTree", CN) adp.Fill(ds) Me.ViewState("ds") = ds Catch ex As Exception#If DEBUG Then Session("Error") = ex.ToString() Response.Redirect("error.aspx") '̀跳转程序的公共错误处理页面#End If Finally '关闭连接 CN.Close() End Try '调用递归函数,完成树形结构的生成 AddTree(0, Nothing) End Sub '递归添加树的节点 Private Sub AddTree(ByVal ParentID As Integer, ByVal pNode As TreeNode) Dim ds As DataSet ds = Me.ViewState("ds") Dim dvTree As New DataView() dvTree = New DataView(ds.Tables(0)) '过滤ParentID,得到当前的所有子节点 dvTree.RowFilter = "PARENTID = " + ParentID.ToString Dim Row As DataRowView For Each Row In dvTree Dim Node As New TreeNode() If pNode Is Nothing Then '判断是否根节点 '添加根节点 Node.Text = Row("ConText").ToString() TreeView1.Nodes.Add(Node) Node.Expanded = True '再次递归 AddTree(Int32.Parse(Row("ID").ToString()), Node) Else '̀添加当前节点的子节点 Node.Text = Row("ConText").ToString() pNode.Nodes.Add(Node) Node.Expanded = True '再次递归 AddTree(Int32.Parse(Row("ID").ToString()), Node) End If Next End Sub
C#版本:
using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using Microsoft.Web.UI.WebControls;using System.Data.SqlClient;namespace TreeCS{ /// /// WebForm1 的摘要说明 /// public class WebForm1 : System.Web.UI.Page { protected Microsoft.Web.UI.WebControls.TreeView TreeView1; private void Page_Load(object sender, System.EventArgs e) { // 定义数据库连接 SqlConnection CN = new SqlConnection(); try { //初始化连接字符串 CN.ConnectionString= "data source=pmserver;initial catalog=Benchmark;persist security info=False;user id=sa;Password=sa;"; CN.Open(); SqlDataAdapter adp = new SqlDataAdapter("select * from tbTree",CN); DataSet ds=new DataSet(); adp.Fill(ds); this.ViewState["ds"]=ds; } catch (Exception ex) { Session["Error"] = ex.ToString(); Response.Redirect("error.aspx"); //̀跳转程序的公共错误处理页面 } finally { CN.Close(); } //调用递归函数,完成树形结构的生成 AddTree(0, (TreeNode)null); } //递归添加树的节点 public void AddTree(int ParentID,TreeNode pNode) { DataSet ds=(DataSet) this.ViewState["ds"]; DataView dvTree = new DataView(ds.Tables[0]); //过滤ParentID,得到当前的所有子节点 dvTree.RowFilter = "[PARENTID] = " + ParentID; foreach(DataRowView Row in dvTree) { TreeNode Node=new TreeNode() ; if(pNode == null) { //添加根节点 Node.Text = Row["ConText"].ToString(); TreeView1.Nodes.Add(Node); Node.Expanded=true; AddTree(Int32.Parse(Row["ID"].ToString()), Node); //再次递归 } else { //̀添加当前节点的子节点 Node.Text = Row["ConText"].ToString(); pNode.Nodes.Add(Node); Node.Expanded = true; AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归 } } } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> ///设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion }}
转载于:https://www.cnblogs.com/fuyingke/archive/2006/06/19/429179.html
NET平台下Web树形结构程序设计相关推荐
- .NET平台下Web树形结构程序设计
.NET平台下Web树形结构程序设计 我的上篇文章<树形结构在开发中的应用>主要是在Windows Form下的实现,下面是Web Form下的实现. 数据库设计 首先,我们在SQL SE ...
- .NET平台下WEB应用程序的部署(安装数据库和自动配置)
.NET平台下WEB应用程序的部署(安装数据库和自动配置) 李洪根 在.NET平台下,部署 Web 解决方案是比较方便的.我们可以利用Visual Studio.NET 2003添加一个WEB安装 ...
- .NET平台下WEB应用程序的部署(安装数据库和自动配置,启动条件)
转自:http://blog.csdn.net/lihonggen0/article/details/13654 首先,创建一个安装和部署项目.步骤如下: 1.在 "解决方案资源管理器 &q ...
- 平铺的树形结构--------树形的应用
1.平铺的数据 0: {id: "604e115c7bfcfa45d019d3e9", pid: "-1", name: "传智教育", c ...
- ztree和php结合实例,实例详解jQuery EasyUI结合zTree树形结构制作web页面
JQuery EasyUI 结合 zTree树形结构制作web页面.easyui用起来比较简单,很好的封装了jquery的部分功能,使用起来更加方便,但是从1.2.3版本以后,商业用途是需要付费的,z ...
- Java 平铺列表转为树形结构
在业务中往往有一些数据是有层级结构的,比如数据表中原始数据如下形式 id name parentId 1 1 null 2 1-1 1 3 1-1-1 2 4 1-1 1 想要将平铺的数据变成有层次的 ...
- 树形结构转平铺结构,平铺结构转树形结构
先新建一个数组 const arr = [{pid: null,id: 1,name: '北京'},{pid: 1,id: 11,name: '朝阳'},{pid: 11,id: 111,name: ...
- Net平台下的B/S开发框架
Net平台下的B/S开发框架 一.前言 本文主要是对.Net平台下的几种B/S开发框架进行比较.只对比前端展现和界面业务逻辑的部分,对于后台的数据层.业务层.持久层等则不作讨论,因为这些部分是完全可以 ...
- .Net平台下的B/S开发框架
.Net平台下的B/S开发框架 一.前言 本文主要是对.Net平台下的几种B/S开发框架进行比较.只对比前端展现和界面业务逻辑的部分,对于后台的数据层.业务层.持久层等则不作讨论,因为这些部分是完全可 ...
最新文章
- declare handler 声明异常处理的语法
- python递归函数讲解_Python递归函数实例讲解
- Virtual Box6.1配置CentOS6.5版本的网络连接(静态IP设定)——虚拟机和宿主机互相ping通以及ping通连接外网
- MongoDB 字符串值长度条件查询
- 九阴真经 服务器列表文件,《九阴真经》部分服务器互通升级公告
- 安卓使用Audio Record自定义录音
- C语言基础专题 - 预处理
- 广西大学计算机硕导名单,导师-广西大学研究生院
- 登录首页时报错:java.lang.IllegalArgumentException (不合法的参数异常)
- Dijkstra算法(朴素,堆优化)+例题
- codeIgniter3 学习笔记二(基于 MVC 开发模式实现小案例)
- 文本转语音通过语音合成标记语言(SSML)改进合成 知识点详解(1)
- CentOS 7 安装 Weadmin(ITOSS)
- 网络术语---数字签名的简单认识
- 考研政治---马克思主义基本原理概论---认识论
- 【京东】会员激励体系,会员体系结构分析
- ps抠出图像的透明阴影
- 计算机应用程序没声音,电脑没声音怎么办
- 树莓派 下如何查看有哪些服务(service)
- 电脑软件连接ABB机器人控制柜
热门文章
- 格莱泽检验matlab,计量经济学实验指导书
- js生日计算年龄_JS根据生日算年龄的方法
- rn项目 假如cocoapods_在项目中集成 RN
- 被低估的css滤镜,你所不知道的 CSS 滤镜技巧与细节
- lombok链式调用_记一次使用 Lombok 翻车造成的事故!
- matlab撤销上一步命令_CAD快速入门技巧:CAD软件中撤销操作的方法汇总
- ajax html例子,AJAX实例
- 816固件a2可以升a1吗_关于A1,A2,A3,B1,B2驾驶证使用新规定,你知多少?
- 【重要】有三AI视频直播间上线,100余小时AI课程等你来学
- 【杂谈】有三AI季划的最核心价值在哪,听听这些同学怎么说!