ASP.NET 递归将分类绑定到 TreeView
CREATE TABLE [dbo].[sysMenuTree](
[NoteId] [decimal](18, 0) NOT NULL,
[ParentId] [decimal](18, 0) NULL,
[sText] [nvarchar](50) NULL,
[sValue] [nvarchar](50) NULL,
[sURL] [nvarchar](50) NULL,
[sTarget] [nvarchar](50) NULL,
[Chger] [nvarchar](50) NULL,
[ChgTime] [nvarchar](50) NULL,
CONSTRAINT [PK_sysMenuTree] PRIMARY KEY CLUSTERED
(
[NoteId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
insert into sysMenuTree values(3,0,N'目錄',N'目錄','','','','')
insert into sysMenuTree values(4,0,N'目錄',N'目錄','','','','')
insert into sysMenuTree values(5,0,N'目錄',N'目錄','','','','')
insert into sysMenuTree values(6,3,N'項目.1',N'項目.1','','','','')
insert into sysMenuTree values(7,3,N'項目.2',N'項目.2','','','','')
insert into sysMenuTree values(8,4,N'項目.1',N'項目.1','','','','')
insert into sysMenuTree values(9,4,N'項目.2',N'項目.2','','','','')
insert into sysMenuTree values(10,4,N'項目.3',N'項目.3','','','','')
insert into sysMenuTree values(11,5,N'項目.1',N'項目.1','','','','')
insert into sysMenuTree values(12,5,N'項目.2',N'項目.2','','','','')
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="treeMenu" runat="server">
</asp:TreeView>
</div>
</form>
</body>
</html>
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
private readonly string ConnString = @"server=.\MSSQLSERVER2008;database=chart;uid=sa;pwd=123456";
private DataTable dt = null;
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
dt = new DataTable();
GetMenuToDataTable("select * from sysMenuTree",dt);
BindTree(dt,null,"0");
}
}
private void BindTree(DataTable dtSource,TreeNode parentNode,string parentID)
{
DataRow[] rows = dtSource.Select(string.Format("ParentID={0}",parentID));
foreach(DataRow row in rows)
{
TreeNode node = new TreeNode();
node.Text = row["sText"].ToString();
node.Value = row["sValue"].ToString();
BindTree(dtSource,node,row["NoteId"].ToString());
if(parentNode == null)
{
treeMenu.Nodes.Add(node);
}
else
{
parentNode.ChildNodes.Add(node);
}
}
}
private DataTable GetMenuToDataTable(string query,DataTable dt)
{
using(SqlConnection conn = new SqlConnection(ConnString))
{
SqlCommand cmd = new SqlCommand(query,conn);
SqlDataAdapter ada = new SqlDataAdapter(cmd);
ada.Fill(dt);
}
return dt;
}
}
ASP.NET 递归将分类绑定到 TreeView的更多相关文章
- Parameter Binding in ASP.NET Web API(参数绑定)
Parameter Binding in ASP.NET Web API(参数绑定) 导航 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnbl ...
- ASP.NET MVC数组模型绑定
在ASP.NET MVC中使用Razor语法可以在视图中方便地展示数组,如果要进行数组模型绑定,会遇到索引断裂问题,如下示例: <input type="text" name ...
- php非递归无限级分类.
项目需要.递归无限级分类效率实在太低.理了半天思路写的. 分类越多效率越高. /** * 单次循环返回无限极分类嵌套 * @param array $data 操作的数组 * @param strin ...
- WPF 将数据源绑定到TreeView控件出现界面卡死的情况
首先来谈一下实现将自定义的类TreeMode绑定到TreeView控件上的一个基本的思路,由于每一个节点都要包含很多自定义的一些属性信息,因此我们需要将该类TreeMode进行封装,TreeView的 ...
- C#递归所以部门展示到TreeView
C#递归所以部门展示到TreeView 1.首先是数据库表的设计 新建一张部门表:TestUser表 1.ID自增int主键 2.DeptName:nchar(10)3.DeptCode:nchar( ...
- asp.net mvc 自定义模型绑定
在asp.net mvc的控制器中如果能够活用模型的自动绑定功能的话能够减少许多工作量.但是如果我们想要对前台传来的数据进行一些处理再绑定到模型上,该怎么做呢? 这里用一个绑定用户数据的小案例来讲解a ...
- asp.net MVC 自定义模型绑定 从客户端中检测到有潜在危险的 Request.QueryString 值
asp.net mvc 自定义模型绑定 有潜在的Requset.Form 自定义了一个模型绑定器.前端会传过来一些敏感字符.调用bindContext. valueProvider.GetValue( ...
- php递归无限分类、根据子类获取所有顶类
//递归无限分类树 public static function diGui($data, $pid) { $arr = collect([]); if (empty($data)) { return ...
- 042-PHP使用闭包函数递归无限级分类
<?php //使用闭包函数递归无限级分类 function demo($array){ # 用于存储递归后的队列 $data = []; # 递归函数 $func = function (&a ...
随机推荐
- 东大OJ-Max Area
1034: Max Area 时间限制: 1 Sec 内存限制: 128 MB 提交: 40 解决: 6 [提交][状态][讨论版] 题目描述 又是这道题,请不要惊讶,也许你已经见过了,那就请你再 ...
- jax-ws开发总结
服务端开发步骤: 1.定义SEI,即java中的接口 2.定义SEI的实现类,使用@webservice注解标记它是一个webservice服务类 3.发布服务 客户端开发步骤:使用jdk的servi ...
- ASP.NET配置Ueditor编辑器上传图片路径
1.配置ueditor/editor_config.js文件,将 //图片上传配置区 ,imageUrl:URL+"net/imageUp.ashx" //图片上传提交地址 ,im ...
- ES6新特性:增加新类型:Symbol
本文所有Demo的运行环境都为nodeJS, 参考:让nodeJS支持ES6的词法----babel的安装和使用 : ES6新增了一种数据类型:Symbol,Symbol是用来定义对象的唯一属性名的不 ...
- Json-遍历
1.js遍历 var data=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13} ...
- Hive 一些便捷小查询
show create table 表名; -- 可以查看表的DDL语句 describe 表名; -- 查看表的字段信息 explain dependency select count(1) fro ...
- PHP热身
0.环境说明 win10 xampp phpstorm xampp带了apache和mysql以及phpmyadmin 1.配置mysql:修改默认编码 关mysql xampp/mysql/bin/ ...
- Android成长日记-Android四大组件之Service组件的学习
1.什么是Service? Service是Android四大组件中与Activity最相似的组件,它们都代表可执行的程序,Service与Activity的区别在于:Service一直在后台运行,它 ...
- phpMyadmin /scripts/setup.php Execute Arbitrary PHP Code Via A Crafted POST Request CVE-2010-3055
目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 The configuration setup script (aka scrip ...
- 使用 BASH 作为 CGI 进行 HTTP 文件上传
憋半天憋出这么点代码来,暂时凑合可以用...需要手动删除文件末尾的分隔符,还有一个windows 换行: #!/bin/bash newline="" while true; do ...