Asp.Net技术前瞻--张明Blog
posts - 52, comments - 125, trackbacks - 68, articles - 0
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
[原创]Asp.net2.0下(数据库主表,子表)实现TreeView控件的树型目录。
Posted on 2006-12-17 21:23
张明
阅读(1124)
评论(9)
编辑
收藏
网摘
所属分类:
ASP.NET2.0
引言:
最近本人做一个项目,运用到TreeView树型目录,搜索了网上很多的实例,不知道网友是不是故弄玄虚,还是故做高深,或是本人水平有限看不懂,给出的实例源码均无法实现动态的TreeView,也有网友用MzTreeView1.0 修改过类似于Csdn社区的树型菜单,本人研究了半天,仍然无法在asp.net2.0下实现。实在为难之下,我自己做了一个,为了方便初学者,现贴出全部源码及数据库建库脚本。由于时间仓促,难免有不足之处,欢迎网友提出宝贵的修改意见。谢谢
一、效果图预览:
二、前台Aspx代码:
<%
@ 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
>
<
style type
=
"
text/css
"
>
<!--
body,td,th
{
font
-
family: 宋体;
font
-
size: 9pt;
}
body
{
margin
-
left: 0px;
margin
-
top: 0px;
margin
-
right: 0px;
margin
-
bottom: 0px;
}
-->
</
style
>
</
head
>
<
body
>
<
form id
=
"
form1
"
runat
=
"
server
"
>
<
div
>
<
asp:TreeView ID
=
"
TreeView1
"
runat
=
"
server
"
Width
=
"
100%
"
/>
</
div
>
</
form
>
</
body
>
</
html
>
三、后置代码CS文件
using
System;
using
System.Data;
using
System.Configuration;
using
System.Collections;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
System.Data.SqlClient;
public
partial
class
_Default : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(
!
IsPostBack)
{
TreeViewBind();
}
}
主从表绑定
#region
主从表绑定
private
void
TreeViewBind()
{
DataSet dst
=
GetTreeViewData();
foreach
(DataRow masterRow
in
dst.Tables[
"
sProBigName
"
].Rows)
{
TreeNode masterNode
=
new
TreeNode((
string
)masterRow[
"
sProBigName
"
]);
TreeView1.Nodes.Add(masterNode);
foreach
(DataRow childRow
in
masterRow.GetChildRows(
"
child
"
))
{
TreeNode childNode
=
new
TreeNode((
string
)childRow[
"
sProSmallSortName
"
]);
masterNode.Expanded
=
false
;
masterNode.ChildNodes.Add(childNode);
}
}
}
private
DataSet GetTreeViewData()
{
SqlConnection Conn
=
new
SqlConnection(System.Configuration.ConfigurationManager.AppSettings[
"
ConnectionSqlServer
"
].ToString());
SqlDataAdapter BigSort
=
new
SqlDataAdapter(
"
select * from [Yp_ProBigSort]
"
, Conn);
SqlDataAdapter SmallSort
=
new
SqlDataAdapter(
"
select * from [Yp_ProSmallSort]
"
, Conn);
DataSet ds
=
new
DataSet();
BigSort.Fill(ds,
"
sProBigName
"
);
SmallSort.Fill(ds,
"
sProSmallSortName
"
);
ds.Relations.Add(
"
child
"
, ds.Tables[
"
sProBigName
"
].Columns[
"
iProBigSort_ID
"
], ds.Tables[
"
sProSmallSortName
"
].Columns[
"
iProBigSortID
"
]);
return
ds;
}
#endregion
}
四、数据库:
Yp_ProBigSort表
数据结构:
iProBigSort_ID(父表主键)
sProBigName(根节点名称)
iProBigSort_ID sProBigName
1 普通内科
2 普通外科
3 妇产科
Yp_ProSmallSort表
iProSmallSort_ID(子表主键)
iProBigSortID(父表主键)
sProSmallSortName(子节点名称)
iProSmallSort_ID iProBigSortID sProSmallSortName
1 1 感冒
2 1 发烧
3 2 普通外科1
4 2 普通外科2
5 3 妇产科1
6 3 妇产科2
五、调试:
代码通过调试,无错。
Feedback
#1楼
回复
引用
2006-12-19 18:26 by
zx [未注册用户]
狂顶
#2楼
回复
引用
2007-01-08 10:57 by
李[匿名] [未注册用户]
大师傅啊 :-)
#3楼
回复
引用
2007-03-20 09:41 by
yok77 [未注册用户]
支持,对初学者实在太有帮助了!希望大大发布更多实用的源码例子.
#4楼
回复
引用
2007-05-10 20:23 by
过客 [未注册用户]
请问TreeView是怎么与数据库里的数据绑定的啊,没有代码啊
#5楼
回复
引用
2008-01-22 08:21 by
天石 [未注册用户]
好东西,不过我要点击每个2级类的连接怎么办?
#6楼
回复
引用
2008-03-26 06:49 by
mi [未注册用户]
靠你
#7楼
回复
引用
2008-07-24 17:40 by
jimnywu [未注册用户]
顶...treeview绑定数据库动态绑定就可以了.msdn好像有..
#8楼
回复
引用
2008-08-02 01:00 by
iy [未注册用户]
来顶下,资源共享。。。
#9楼
回复
引用
2008-08-12 02:21 by
xiexie20082008 [未注册用户]
太谢谢你了
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
人才
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2008-04-29 11:55 编辑过
Google站内搜索
相关文章:
相关链接:
所属分类的其他文章:
asp.net2.0为DataList和GridView内容项添加序号
Asp.Net2.0下C#环境 Login控件实现用户登录
IFRAME滚动条的样式
asp.net下Split分隔字符串的应用
[原创]Asp.net2.0下(数据库主表,子表)实现TreeView控件的树型目录。
[原创]Asp.net2.0下利用Global.asax全局文件实现流量分析
[原创]Asp.net2.0 VS 2005下的repeater控件本功能分页实例(共有 条记录 共有几页 当前第 页 首页,上一页,下一页,尾页 DropDownList跳转)
File文件控件,选中文件(图片,flash,视频)即立即预览显示
ASP.NET结合存储过程写的通用搜索分页程序
GridView记录删除前的确认窗口
最新IT新闻:
后“开放”平台时代
李彦宏首次表态竞价排名问题:有错能改善莫大焉
杨致远发表博客解释辞职原因
微软公布免费安全软件计划
《时代》:杨致远被Google玩弄于股掌之间?
Powered by:
博客园
Copyright © 张明
与我互动
给我发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(7)
给我留言
查看私人留言
我参与的团队
昆明.NET俱乐部(0/116)
我的标签
存储过程(1)
存储过程返回值(1)
获取存储过程返回值(1)
AjaxControlToolkit(1)
Ajax(1)
AjaxControlToolkit控件集详解(1)
AjaxControlToolkit学习(1)
Asp.Net2.0下C#环境(1)
Login控件实现用户登录(1)
Login控件用法(1)
更多
随笔分类
ADO.NET(4)
Ajax&Altas(6)
ASP.NET1.0(3)
ASP.NET2.0(22)
C#(4)
DataGrid
DropDownList
GridView(4)
Java(1)
JavaScript(3)
Microsoft SQL Server(1)
正则表达式(1)
自娱自乐(3)
我的好友
第一视频在线
提供最新最全的国内外DVD大片高速在线观看
搜夜网|国内最大的夜场门户网
搜夜网,城市门户,web2.0,夜生活,地图,搜夜卡,会员,论坛,地图,积分,打折,商家,点评
积分与排名
积分 - 36895
排名 - 1240
最新随笔
1. asp.net2.0为DataList和GridView内容项添加序号
2. [原创]完美Js(Javascript)代码自动成器
3. 金额转换,把金额转换成为汉字大写金额!
4. 使用存储过程并返回值与及返回值的获得方法
5. AjaxControlToolkit的安装与使用详解
6. 更新公告,本Blog从即日起开始更新,基本保证每天一更,欢迎广大开发者提出宝贵意见
7. Asp.Net2.0下C#环境 Login控件实现用户登录
8. IFRAME滚动条的样式
9. asp.net下Split分隔字符串的应用
10. [原创]Asp.net2.0下(数据库主表,子表)实现TreeView控件的树型目录。
最新评论
1. re: Asp.Net2.0下C#环境 Login控件实现用户登录
谢谢你的代码 解决了我们问题 谢谢你
--wzw200
2. re: Ajax实现无刷新树
也发给我一份AjaxPro好吗?等着急用,谢谢!
--ajun