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 下临摹一个,如下: 实现的 ...
随机推荐
- html之dl标签
用来定义列表之用 通常与dt:定义列表中的项目 dd:描述列表中的项目 示例代码: <dl> <dt>数据库</dt> <dd>oracle</d ...
- dubbo 解决Multicast java.net.SocketException: No such device
log4j:WARN No appenders could be found for logger (com.alibaba.dubbo.common.logger.LoggerFactory). l ...
- eclipse项目持续报红解决
1.tomcat 同步,点击publish: 2.clear项目 3.项目报红,Maven --->UpdateProject 4.pom.xml需要更新,下载最新jar包,附图:
- IOS开发-手势简单使用及手势不响应处理办法
1.点击 2.长按 3.拖拽 4.轻扫.捏合.旋转 5.使用手势需要注意的地方 1.注意处理轻扫和拖拽的冲突 //那个时间短的话 就让那个先执行 //处理 拖拽和轻扫 两个手势的冲突 //需要轻扫手势 ...
- visual studio 编译时 出现 Files 的值 乱码
参考了:http://blog.163.com/jiang_tao_2010/blog/static/121126890201031031337332/ 最近在做程序时,在生成解决方法过程中,电脑出现 ...
- QT显示中文的几个问题
最近用QT,需要在界面上显示中文,发现QT无法直接在代码中写中文,只能通过曲线救国的方式,比如用QT语言家,QTextCodec的fromloca8bit 研究了半天,终于明白了一些编码的问题 1.V ...
- class对象不太明白(待解答)
如下:定义了一个Servletcontext的Listener,希望获取当前WEB应用的某一个文件对应的输入流 不懂为什么要这样获取?不是可以直接用servletContext.getResource ...
- C语言每日一题之No.1
鉴于在学校弱弱的接触过C,基本上很少编程,C语言基础太薄弱.刚好目前从事的是软件编程,难度可想而知.严重影响工作效率,已无法再拖下去了.为此,痛下决心恶补C语言.此前只停留在看书,光看好像也记不住,C ...
- ACL权限设置使用
acl操作 # 查看操作的分区支不支持acldumpe2fs -h /dev/sda2 | grep aclDefault mount options: user xattr acl 代表支持acl如 ...
- 黄聪:走进wordpress do_action函数
再看do_action函数.位于plugin.php352行.我把源码放在西街口这里,略去了其它辅助处理的语句. 如下: function do_action($tag, $arg = '') { ...