Asp.net树形递归算法
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
namespace WebApp
{
public partial class LoadMenu : System.Web.UI.Page
{
DataSet ds = null;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//this.InitPage();
ds = GetDB("select * from page");
TreeNode pTreeNpd = null;
GetTreeNode("0",pTreeNpd);
}
}
private void InitPage()
{
TreeNode treeNode = this.GetTreeNode();
this.TreeViewMenu.Nodes.Add(treeNode);
}
private TreeNode GetTreeNode()
{
TreeNode treeNode = new TreeNode("菜单导航");
DataSet ds = this.GetDB("select * from page where Parent = '0'");
foreach (DataRow masterRow in ds.Tables[0].Rows)
{
TreeNode masterNode = new TreeNode((string)masterRow["Text"]);
masterNode.NavigateUrl = (string)masterRow["Page"];
treeNode.ChildNodes.Add(masterNode);
DataSet ds11 = this.GetDB("select * from page where Parent = '" + masterRow["RID"] + "'");
foreach (DataRow item in ds11.Tables[0].Rows)
{
TreeNode masterNode1 = new TreeNode((string)item["Text"]);
masterNode1.NavigateUrl = (string)item["Page"];
masterNode.ChildNodes.Add(masterNode1);
}
}
return treeNode;
}
private TreeNode GetTreeNode(string Parent, TreeNode treeNode)
{
DataView dv = ds.Tables[0].DefaultView;
dv.RowFilter = " [Parent]='" + Parent + "'";
foreach (DataRowView item in dv)
{
TreeNode tttrr = new TreeNode();
if (treeNode == null)
{
tttrr.Text = item["Text"].ToString();
TreeViewMenu.Nodes.Add(tttrr);
GetTreeNode(item["rid"].ToString(), tttrr);
}
else
{
tttrr.Text = item["Text"].ToString();
tttrr.NavigateUrl = (string)item["Page"];
treeNode.ChildNodes.Add(tttrr);
}
}
return null;
}
private DataSet GetDB(string sql)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = “";
if(con.State == ConnectionState.Closed)
{
con.Open();
}
SqlDataAdapter da = new SqlDataAdapter(sql, con);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
}
}
Asp.net树形递归算法的更多相关文章
- asp.net 树形控件 $.fn.zTree.init
在网页中通过jquery脚本来构筑树形控件将是一个不错的选择,比如有一个文本框,当鼠标点击的时候,像弹出一个下拉框一样弹出一个树形控件,这似乎是一个不错的控制.下面主要讲讲这种树形控件的实现.为了能使 ...
- ASP.NET使用递归算法实现画树程序
实现效果如下:(随机生成) using System; using System.Collections.Generic; using System.ComponentModel; using Sys ...
- ASP.NET树形控件TreeView的递归绑定
来自:http://blog.csdn.net/xqf003/article/details/4958727
- Jquery树形控件 $.fn.zTree.init
https://www.cnblogs.com/jin-/p/4646202.html asp.net 树形控件 $.fn.zTree.init 在网页中通过jquery脚本来构筑树形控件将是一个不错 ...
- 【Tree 1】树形结构数据呈现的递归算法实现
一.基本概况 在我的项目中,常常会用到树形结构的数据,最为明显的就是左边菜单栏,类似于window folder一样的东西. 而我之前一直是借助前端封装好的ZTree等工具实现展示,而后台则通常使用递 ...
- Asp.Net MVC页面静态化功能实现二:用递归算法来实现
上一篇提到采用IHttpModule来实现当用户访问网站的时候,通过重新定义Response.Filter来实现将返回给客户端的html代码保存,以便用户下一次访问是直接访问静态页面. Asp.Net ...
- 使用递归算法结合数据库解析成java树形结构
使用递归算法结合数据库解析成java树形结构 1.准备表结构及对应的表数据a.表结构: create table TB_TREE ( CID NUMBER not null, CNAME VARCHA ...
- 递归算法结合数据库 解析 java树形结构
1.准备表结构及对应的表数据a.表结构: create table TB_TREE ( CID NUMBER not null, CNAME VARCHAR2(50), PID NUMBER //父节 ...
- 在ASP.NET MVC下实现树形导航菜单
在需要处理很多分类以及导航的时候,树形导航菜单就比较适合.例如在汽车之家上: 页面主要分两部分,左边是导航菜单,右边显示对应的内容.现在,我们就在ASP.NET MVC 4 下临摹一个,如下: 实现的 ...
随机推荐
- Spring Data Solr教程(翻译) 开源的搜索服务器
Solr是一个使用开源的搜索服务器,它采用Lucene Core的索引和搜索功能构建,它可以用于几乎所有的编程语言实现可扩展的搜索引擎. Solr的虽然有很多优点,建立开发环境是不是其中之一.此博客条 ...
- java序列化---转
Java 序列化Serializable详解(附详细例子) 1.什么是序列化和反序列化Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是 ...
- javascript 与和非
|| : 在javascript中,返回第一个真值,除非都是假值返回最后一个值(也是假值). 1 || 0; 0 || 1; 0 || 0; 0 || undefined; // undefined ...
- Android的onCreateOptionsMenu()创建菜单Menu详解
Android一共有三种形式的菜单: 1.选项菜单(optinosMenu) 2.上下文菜单(ContextMenu) 3.子菜单(s ...
- .NET导入openssl生成的公钥之BEGIN RSA PUBLIC KEY
.NET导入openssl生成的公钥之BEGIN RSA PUBLIC KEY 我得到了一个公钥,形式如下 -----BEGIN RSA PUBLIC KEY----- MIGJAoGBAMroxz3 ...
- Redis主从同步介绍
Redis主从同步命令和配置项 启动主从复制:master无需任何操作,slave中使用以下任意一种开启复制功能 (1).通过配置文件启动主从复制: 在redis.conf中加入"slave ...
- C++虚函数和纯虚函数的区别
多态是C++的重要特性,通过基类指针来访问派生类的函数. 虚函数就是为了实现这功能而定义的函数,虚函数可以在定义时实现也可以不实现,定义了虚函数的类可以实例化. 纯虚函数更多的是表示接口的含义,纯虚函 ...
- rpm包安装时发现缺少其他依赖
多年来一直困扰我的问题,就是当我们下载了一个rpm包来安装的时候发现缺少依赖.以前的做法是网上挨个去搜索依赖的rpm,然后依次安装. # rpm -ivh google-chrome-stable_c ...
- MSSQL update 多表关联更新
update tMeter set 字段= t.源自段 from ( select * from 源表信息 ) t where 关联条件 实际demo: UPDATE dbo.WX_TWODIMENC ...
- python 深入理解 赋值、引用、拷贝、作用域
在 python 中赋值语句总是建立对象的引用值,而不是复制对象.因此,python 变量更像是指针,而不是数据存储区域, 这点和大多数 OO 语言类似吧,比如 C++.java 等 ~ 1.先来看个 ...