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之p标签
p标签定义段落 p元素会自动在其前后创建一些空白,浏览器会自动添加这些空间. 效果图:
- 转载:scikit-learn学习之决策树算法
版权声明:<—— 本文为作者呕心沥血打造,若要转载,请注明出处@http://blog.csdn.net/gamer_gyt <—— 目录(?)[+] ================== ...
- EmEditor处理大文本文件
前段时间新闻网由于用户不当操作.导致三年的报纸栏目内容全部清空.紧急情况下只能求助于SQL数据恢复.但备份的数据文件有500M左右. 首先用的文本编辑器是Notepad++,打开之后软件几乎完全卡死. ...
- R提高篇(一): 输入输出
目录: 文本输出 图形输出 数据输入 数据框输出 文本导入 Excel导入 文本输出 语法: sink(file = NULL, append = FALSE, type = c("outp ...
- HackerRank "Morgan and a String"
I saw the same sub-problem in LeetCode, and there exists a O(n) neat greedy solution: for _ in range ...
- 在html中添加缩放meta
见代码(html) <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w ...
- linq简介
语言集成查询(Language INtegrated Query,LINQ)是一项微软技术,新增一种自然查询的SQL语法到.NET Framework的编程语言中,可支持Visual Basic .N ...
- [jQuery]《锋利的jQuery》插件部分总结
/** * <锋利的jQuery>插件部分总结 * * jQuery插件推荐命名:jquery.name.js * * $.fn.extend用于封装对象方法的插件 * $.extend用 ...
- [CSS]去除inline-block元素间距的几种方法
当我们使用inline-block 时,会出现空白间距问题. 但这些间距对我们的布局,或兼容性产生影响,我们需要去除它,该怎么办?下面简单介绍几种方法: 1.去掉html元素之间的空格,直接写在一行. ...
- BestCoder Round #87 LCIS(dp)
LCIS 要用dp的思路想这题 [题目链接]LCIS [题目类型]dp &题意: 给定两个序列,求它们的最长公共递增子序列的长度, 并且这个子序列的值是连续的,比如(x,x+1,...,y−1 ...