转:ASP.NET2.0 TreeView的数据库绑定

原创 2007年09月25日 10:14:00
<%@ 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>

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





-----------------------------------------------

TreeView的数据绑定资源默认的有两类:XML和SiteMap 

这两类资源的共同特点就是资源文件是固定保存在项目中的,这一类方便我们使用来做菜单,所以TreeView归类在导航控件中.这里的绑定我不做详细的叙述,VS2005中可以很方便的使用.

TreeView还有一种用法是用来显示数据信息及其数据信息的层级信息,这里上面的两类就不能满足我们的需要,我们需要的是与数据库资源连接,而形成动态的TreeView.同样我们还可以在数据库中使用树的双亲表示法把树描述出来,例如

ID Name ParentID
1 1 0
2 2 0
3 3 0
4 4 1
5 5 1
6 6 2
7 7 2
8 8 3
9 9 7

使用这种的数据库方法可以很方便的绑定到TreeView中,形成一个无限动态树.(当然还有其他的数据库的方法)

private void InitTree(TreeNodeCollection Nds, string ParentId)
    
{
        DataView dvroles 
= new DataView();
        TreeNode tmpNd;
        
        
string strRID;
        dvroles.Table 
= csa.CreateDataSet("DS1").Tables["T1"];//DataSet的DataTable表中
        dvroles.RowFilter = " ParentID=" + ParentId;
        
foreach (DataRowView drvrole in dvroles)
        
{
            strRID 
= drvrole["ID"].ToString();
            tmpNd 
= new TreeNode();
            tmpNd.Value 
= drvrole["ID"].ToString();
            tmpNd.Text 
= drvrole["Name"].ToString();
            tmpNd.Target 
= drvrole["ParenID"].ToString();
            Nds.Add(tmpNd);
            InitRoleTree(tmpNd.ChildNodes, strRID);
        }

    }

在这里我们可以进行控制的树的信息有

Value 节点的ID
Text 节点的显示信息
Target 关联网页内容的目标窗口,如果没有关联网页,也可以做一个数据容器
ToolTip 节点文本提示工具
ImageUrl 节点图片
ImageToolTip 节点图片文本提示工具
 

C# WinForm TreeView 动态绑定数据库例如:省、市、区县 三级

前段时间做项目用到了TreeView,闲来没事自己想总结一下TreeView的绑定省市县的方法,希望对想学习的博友有所帮助。提示:省市县数据库可以在网上下载资源很多的。废话不多说了上代码…… 用到的...
  • lianni_1101
  • lianni_1101
  • 2015年06月10日 14:51
  • 1314

WPF中的TreeView如何定义模版,并绑定数据

转自:http://www.cnblogs.com/izualx/archive/2011/02/03/1949055.html   最近在用WPF做开发,项目进展的还算顺利,WPF总体来...
  • AAA123524457
  • AAA123524457
  • 2015年06月25日 14:12
  • 2931

winform如何实现将数据库数据加载到树上

一、简介对于winform中如何加载xml生成目录树,在前边一篇文章“c#如何实现从xml中加载树目录,并且显示完整的Text”中我已经写了详细的过程。但是有些时候我们不可能将大量的数据存储到xml中...
  • ztzi321
  • ztzi321
  • 2015年05月07日 16:38
  • 2491

c#解析xml绑定treeview控件实现

向web端的api发送http请求,得到的结果是xml格式的节点信息,id标识节点号,
  • u014787464
  • u014787464
  • 2014年09月14日 21:58
  • 890

C#打开xml,并绑定TreeView

XML读取与写入  这个代码有个问题就是XML一个节点的属性 xNode.Attributes不能显示出来   //加载XML文件,并在TreeView上显示         publi...
  • he3359893
  • he3359893
  • 2013年11月07日 10:48
  • 1364

读取XML文件动态绑定TreeView控件练习题

题目三:读取XML文件动态绑定TreeView控件 一、语言和环境 A、实现语言  C# B、环境要求  Visual Studio 2012 二、功能要求 现使用....
  • baidu_36074048
  • baidu_36074048
  • 2017年03月12日 16:18
  • 882

TreeVIew控件绑定数据

TreeVIew控件可以实现在后台管理界面,实现多级菜单的样式。数据可以自己手动添加,也可以从数据库中绑定,方法如下: 数据库中的表T_Category表的样式: HTML代码: htt...
  • u011955860
  • u011955860
  • 2013年11月26日 16:59
  • 710

ASP.NET实现TreeView的XML数据源绑定实例代码

ASP.NET实现TreeView的XML数据源绑定实例代码   这篇文章介绍了ASP.NET实现TreeView的XML数据源绑定实例代码,有需要的朋友可以参考一下 TreeView控...
  • honglulu06
  • honglulu06
  • 2015年06月03日 14:55
  • 638

C#实现treeview绑定,取值,选中样式

前台 后台using S
  • q359796989
  • q359796989
  • 2015年05月14日 10:02
  • 969

TreeView绑定数据库

很多应用要用到TreeView来显示组织机构,以下演示TreeView如何与数据库进行绑定。 数据库结构如下(递归现实): id(guid)                        ...
  • yuanwei90315
  • yuanwei90315
  • 2013年01月24日 15:29
  • 463
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:转:ASP.NET2.0 TreeView的数据库绑定
举报原因:
原因补充:

(最多只允许输入30个字)