`

asp.net 2.0中TREEVIEW中动态增加结点

阅读更多
在asp.net 2.0中,要动态从数据库中取出内容,动态增加结点,其实不难,比如以SQL SERVER 2000的PUBS数据库为例子,要以树型列表方式,取出作者,做为根结点,然后取出每位作者写过什么书,作为子结点,可以这样
<%@ Page Language="C#"%>
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SqlClient"%>
<%@ Import Namespace="System.Configuration"%>

<!DOCTYPE htmlPUBLIC"-//W3C//DTD XHTML 1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<head runat="server">
 <title>Dynamic Population of the TreeView Control</title>
 <script runat=server>
void Node_Populate(object sender,
 System.Web.UI.WebControls.TreeNodeEventArgs e)
 {
 if(e.Node.ChildNodes.Count == 0)
 {
 switch( e.Node.Depth )
 {
 case 0:
 FillAuthors(e.Node);
 break;
 case 1:
 FillTitlesForAuthors(e.Node);
 break;
 }
 }
 }

 void FillAuthors(TreeNode node)
 {
 string connString = System.Configuration.ConfigurationSettings.
ConnectionStrings["NorthwindConnnection"].ConnectionString;
 SqlConnection connection = new SqlConnection(connString);
 SqlCommand command = new SqlCommand("Select * From
 authors",connection);
 SqlDataAdapter adapter = new SqlDataAdapter(command);
 DataSet authors = new DataSet();
 adapter.Fill(authors);
 if (authors.Tables.Count > 0)
 {
 foreach (DataRow row in authors.Tables[0].Rows)
 {
 TreeNode newNode = new
 TreeNode(row["au_fname"].ToString() + " " +
 row["au_lname"].ToString(),
 row["au_id"].ToString());
 newNode.PopulateOnDemand = true;
 newNode.SelectAction = TreeNodeSelectAction.Expand;
 node.ChildNodes.Add(newNode);
 }
 }
 }

 void FillTitlesForAuthors(TreeNode node)
 {
 string authorID = node.Value;
 string connString = System.Configuration.ConfigurationSettings.
ConnectionStrings["NorthwindConnnection"].ConnectionString;
 SqlConnection connection = new SqlConnection(connString);
 SqlCommand command = new SqlCommand("Select T.title,
T.title_id From titles T" +
" Inner Join titleauthor TA on
T.title_id = TA.title_id " +
 " Where TA.au_id = '" + authorID + "'", connection);
 SqlDataAdapter adapter = new SqlDataAdapter(command);
 DataSet titlesForAuthors = new DataSet();
 adapter.Fill(titlesForAuthors);
 if (titlesForAuthors.Tables.Count > 0)
 {
 foreach (DataRow row in titlesForAuthors.Tables[0].Rows)
 {
 TreeNode newNode = new TreeNode(
row["title"].ToString(), row["title_id"].ToString());
 newNode.PopulateOnDemand = false;
 newNode.SelectAction = TreeNodeSelectAction.None;
 node.ChildNodes.Add(newNode);
 }
 }
 }

 </script>
</head>
<body>
 <form id="form1" runat="server">
 <div>
 <asp:TreeViewRunat="Server" ExpandImageUrl="Images/closed.gif"
 CollapseImageUrl="Images/open.gif"
 OnTreeNodePopulate="Node_Populate" ID="tvwauthors">
 <Nodes>
 <asp:TreeNodeText="Authors" PopulateOnDemand=true
Value="0"/>
 </Nodes>
 </asp:TreeView>
 </div>
 </form>
</body>
</html>
 其中,注意ontreenodepopulate事件,是在展开树的结点时发生的,这里定义了自定义的NODE_POPULATE,在node_populate中,检查当前结点的深度,如果是0,就是根结点,于是就调用FillAuthors过程,取出所有的作者,如果深度是1,则是叶子结点,调用FillTitlesForAuthors过程。其中,要注意它们中的动态建立树结点的过程,如:
  TreeNode newNode = new    TreeNode(row["au_fname"].ToString() + " " +

                           row["au_lname"].ToString(),

                           row["au_id"].ToString());

                    newNode.PopulateOnDemand = true;

                    newNode.SelectAction = TreeNodeSelectAction.Expand;

                    node.ChildNodes.Add(newNode);
其中, popluateondemand属性表明,该结点会动态扩展。

分享到:
评论

相关推荐

    asp.net 2.0中TREEVIEW中动态增加结点.rar

    这个压缩包文件“asp.net 2.0中TREEVIEW中动态增加结点.rar”显然是关于如何在运行时动态地向TreeView添加节点的教程。在ASP.NET中,这种功能非常有用,因为它允许开发者根据用户交互或后台数据变化来更新控件。 ...

    ASP.NET 2.0功能源码

    ASP.NET 2.0是微软开发的一个Web应用程序框架,它基于.NET Framework,为开发者提供了构建动态网站、Web应用和Web服务的强大工具。这个"ASP.NET 2.0功能源码"压缩包文件很可能是为了帮助学习者理解并探索ASP.NET 2.0...

    ASP.NET 2.0网站开发全程解析(C#)

    ASP.NET 2.0是微软推出的用于构建动态网站、Web应用程序和Web服务的框架,它基于.NET Framework。这本书"ASP.NET 2.0网站开发全程解析(C#)"应该是全面介绍了使用C#语言进行ASP.NET 2.0开发的各个方面。在深入探讨这...

    ASP.NET 2.0动态网站设计教程

    本教程重点讲解如何利用ASP.NET 2.0进行动态网站设计,适合初学者和有一定基础的开发者学习。教程由李春葆老师编著,包含了丰富的课件和代码示例。 1. **ASP.NET 2.0核心概念**:ASP.NET 2.0引入了诸如页面生命周期...

    圣殿祭司的ASP.NET 2.0开发详解

    ASP.NET 2.0是微软.NET Framework的一部分,它提供了一个用于构建动态网站、Web应用程序和Web服务的强大平台。"圣殿祭司的ASP.NET 2.0开发详解"可能是一本详细介绍了该技术的书籍或教程,旨在帮助开发者深入理解和...

    Asp.net 2.0高级编程

    ASP.NET 2.0是微软开发的一个用于构建Web应用程序的框架,它建立在.NET Framework之上,为开发者提供了强大而高效的方式来创建动态网站、Web服务和Web应用程序。在深入探讨ASP.NET 2.0的高级编程之前,我们首先要...

    完全手册ASP.NET2.0网路开发详解(源码)

    《完全手册ASP.NET 2.0 网络开发详解》是一本深入解析ASP.NET 2.0技术的专业书籍,附带的源码文件旨在帮助读者更好地理解和实践书中的理论知识。这本书涵盖了ASP.NET 2.0的核心概念、开发工具、架构设计、页面生命...

    ASP.Net 2.0 开发技术大全 -- 005

    ASP.NET 2.0是微软推出的用于构建动态网站、Web应用程序和Web服务的框架,它在.NET Framework 2.0之上构建,提供了丰富的功能和工具,使得开发者能够更高效地创建交互式、数据驱动的Web应用程序。在这个"ASP.Net 2.0...

    .net 2.0 环境安装包

    在2.0版本中,ASP.NET引入了母版页(Master Pages)的概念,方便页面布局;增加了主题(Themes)和皮肤(Skin),简化了UI设计;以及新的Web控件和数据绑定模型,增强了开发效率。 5. Windows Forms 2.0: Windows...

    ASP.NET 2.0全程指南(程序)

    在ASP.NET 2.0中,许多新特性和改进被引入,以提升开发者的生产力和用户体验。 首先,ASP.NET 2.0中的控件体系结构得到了显著增强。它引入了控件模板和数据绑定,使得在页面上创建和操作用户界面元素更加直观和便捷...

    ASP.net2.0的新特性

    ASP.NET 2.0 是微软.NET Framework的一部分,它在ASP.NET 1.x的基础上引入了许多显著的新特性和增强功能,极大地提升了开发效率和用户体验。以下是ASP.NET 2.0中的主要新特性: 1. **会员(Membership)框架**: ...

    完全手册:ASP.NET2.0网络开发详解教程光盘

    本教程光盘“完全手册:ASP.NET2.0网络开发详解教程”涵盖了ASP.NET 2.0的核心概念和技术,旨在帮助初学者和有经验的开发者深入理解和掌握这一技术。 首先,ASP.NET 2.0引入了许多改进,包括Page生命周期的优化,...

    Asp.net 2.0 Treeview 无限级无刷新示例

    在ASP.NET 2.0中,TreeView控件是一种常用的数据展示工具,它可以以树状结构显示数据,非常适合用于导航菜单、文件系统浏览等场景。在这个"ASP.NET 2.0 Treeview 无限级无刷新示例"中,我们将探讨如何构建一个能够...

    ASP.NET 2.0快速入门(12):ASP.NET 2.0网站快速导航

    ASP.NET 2.0是微软开发的一个用于构建Web应用程序的框架,它在.NET Framework的基础上提供了丰富的功能和工具,使得开发者可以更加高效地构建动态、数据驱动的网站。在这个系列的第12部分,我们将深入探讨ASP.NET ...

    ASP.NET 2.0入门与提高系列课程(3):ASP.NET 2.0用户界面

    9. **导航控件(Navigation Controls)**:ASP.NET 2.0提供了SiteMapPath、TreeView等控件,用于构建网站的导航结构,帮助用户在网站中自由浏览。 10. **自定义用户控件(User Controls)**:开发者可以创建自己的用户...

    论文研究-ASP.NET 2.0中TreeView控件在物价局收费管理系统中的应用 .pdf

    ASP.NET 2.0中TreeView控件在物价局收费管理系统中的应用,佘安强,,针对物价局收费管理系统中收费项目库的要求和特点,提出了一种利用TreeView控件解决收费项目树状列表显示问题的方法。利用递归算法�

    ASP.NET 2.0 开发技术大全 配套光盘-010

    1. **控件导向的开发**:ASP.NET 2.0引入了大量的服务器控件,如GridView、TreeView等,这些控件简化了UI设计,让开发者能够以声明式方式创建复杂的用户界面。 2. **数据绑定**:数据绑定模型的增强是2.0版本的一大...

    ASP.NET2.0完全开发指南

    ASP.NET 2.0是微软推出的用于构建动态网站、web应用程序和web服务的框架,它在ASP.NET 1.x的基础上进行了许多改进和增强。在"ASP.NET 2.0完全开发指南"这本书中,读者可以深入理解这个强大的平台,学习如何高效地...

Global site tag (gtag.js) - Google Analytics