ASP.NET 2.0 中实现 Treeview 与数据库的绑定(含代码)

asp.net|treeview|数据|数据库

编程思想:   每条记录代表一个节点。通过表里的 2 个数字型的核心字段 f_NodeId、f_ParentNodeId 形成逻辑上的层次型关系。约定 0 代表根节点。其他字段为辅助字段,与本文关系不大。定义和初始化一对象数组 myNodes,然后一次性读取表中的记录,通过判断当前节点的父节点,依次建立所有的上下级关系。示例数据:运行结果:示例下载:http://www.why100000.com/_ftps/samples/Tree+db.rar(代码调试环境:Visual Web Developer 2005 Express Edition)Access数据库名:db_system.mdb表名:tabItems表结构:    f_i_autoid      自动编号    f_NodeId        数字(本节点ID)    f_ParentNodeId  数字(父节点ID)    f_Name          文本    f_Tag           文本    f_Url           文本    f_order         数字    f_isHidden      文本    f_datetime      日期/时间
  关键代码:using System;using System.Data;using System.Data.OleDb;using System.Configuration;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;

  public partial class _Default : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {        if (!IsPostBack)        {            string sDbPath = "./db_system.mdb";  //"            string sPassword = "";            string sDbTable = "tabItems";            OleDbConnection oConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(sDbPath) + ";Password=" + sPassword + ";");            OleDbDataReader oDr;

              try            {                oConn.Open();                OleDbCommand oCmd = new OleDbCommand("select * from " + sDbTable, oConn);  // + " order by f_level"                oDr = oCmd.ExecuteReader();

                  //定义对象数组                TreeNode[] myNodes = new TreeNode[100];

                  //初始化对象数组                for (int i = 0; i < myNodes.Length; i++)                {                    myNodes[i] = new TreeNode();                }

                  //从表中取数据                while (oDr.Read())                {                    int iParentNodeId = (int)oDr["f_ParentNodeId"];                    int iMyNodeId = (int)oDr["f_NodeId"];

                      if (iParentNodeId != 0)                    {                        myNodes[iMyNodeId].Text = oDr["f_name"].ToString();                        myNodes[iMyNodeId].NavigateUrl = oDr["f_url"].ToString();                        myNodes[iParentNodeId].ChildNodes.Add(myNodes[iMyNodeId]);                    }                    else                    {                        myNodes[iMyNodeId].Text = oDr["f_name"].ToString();                        myNodes[iMyNodeId].SelectAction = TreeNodeSelectAction.None;                        TreeView1.Nodes.Add(myNodes[iMyNodeId]);                    }                }            }

              catch (System.Exception sqle)            {                sqle.ToString().Replace("\n", "<br>");                Response.Write(sqle);            }            finally            {                oConn.Close();            }

          }

      }}

时间: 2024-09-27 02:53:52

ASP.NET 2.0 中实现 Treeview 与数据库的绑定(含代码)的相关文章

ASP.NET 2.0中直接将Access数据库导入到Excel中

在实际的开发应用中,数据库导入导出是经常遇到的问题,尤其是数据库与Excel文件之间的导入导出,还存在数据类型不一致的问题.例如:数据库的数字超长时会在Excel里格式化成科学计数法的格式,或者记录内容是数字和字符的混合内容会丢失内容等等.将Access数据库的内容直接导入到Excel则可以避免这些问题. 下面例子就是实现这个功能,例子中的数据库使用<ASP.NET 2.0应用开发技术>一书中自带的数据库为例子. 另外,需要注意:Excel文件有诸多限制,在如果数据库记录内容很多,还要计算每次

ASP.NET 2.0中随机读取Access数据库记录

[导读]由于使用ADO访问Access数据库会有缓存,这在随机提取数据库数据时,例如:sql="select top 10 Title,objectGuid from Document Order By Rnd(id)",将得不到随机记录,本文中给出的例子可以克服这一缺陷,实现数据库的随机读取. 由于使用ADO访问Access数据库会有缓存,这在随机提取数据库数据时,例如:sql="select top 10 Title,objectGuid from Document Or

在ASP.NET 2.0中数据绑定的实现方法

1.为什么ASP.NET 2.0中的数据绑定控件不需要写代码就能完成更新.删除.新建等数据操作? ASP.NET 1.x时,DataGrid等控件使用DataBinder.Eval(Container.DataItem,"ColumnName")这样的表达式可以将数据源中的数据绑定到控件上,但并不能在更新数据时自动将控件中的新值取出,更新回数据库.所以ASP.NET 2.0中的数据绑定分为两种:单向数据绑定(即表达式或ReadOnly设为True的BoundField,只提供从数据源到

一起谈.NET技术,在ASP.NET 2.0中数据绑定的实现方法

1.为什么ASP.NET 2.0中的数据绑定控件不需要写代码就能完成更新.删除.新建等数据操作? ASP.NET 1.x时,DataGrid等控件使用DataBinder.Eval(Container.DataItem,"ColumnName")这样的表达式可以将数据源中的数据绑定到控件上,但并不能在更新数据时自动将控件中的新值取出,更新回数据库.所以ASP.NET 2.0中的数据绑定分为两种:单向数据绑定(即表达式或ReadOnly设为True的BoundField,只提供从数据源到

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

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

在ASP.NET 2.0中建立站点导航层次(1)

站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息. 站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节.你可以使用API来编程访问应用程序的导航节点. 导航控件--导航控件为页面之间的导航提供了通用的UI,例如树视图.菜单和breadcrum

理解并扩展 ASP.NET 2.0 中的站点导航系统

asp.net|导航|站点 摘要:ASP.NET 2.0 站点导航系统构建于一个功能强大.灵活的体系结构之上,设计这样的体系结构是为了使其具有可扩展性.本文探究站点提供程序的体系结构并提供一个示例提供程序,该提供程序将文件系统公开为站点导航的数据源,从而替代了标准的 Web.sitemap XML 文件. 简介 大多数 web 站点采用可视化导航的某种形式来帮助用户轻松地浏览站点,以及查找他们所需的信息和 Web 页.尽管不同站点之间的感观效果千差万别,但是通常会使用相同的基本元素 - 以导航栏

在ASP.NET 2.0中使用样式、主题和皮肤

asp.net ASP.NET 2.0的主题和皮肤特性使你能够把样式和布局信息存放到一组独立的文件中,总称为主题(Theme).接下来我们可以把这个主题应用到任何站点,用于改变该站点内的页面和控件的外观和感觉.通过改变主题的内容,而不用改变站点的单个页面,就可以轻易地改变站点的样式.主题也可以在开发者之间共享. ASP.NET包含了大量的用于定制应用程序的页面和控件的外观和感觉的特性.控件支持使用Style(样式)对象模型来设置格式属性(例如字体.边框.背景和前景颜色.宽度.高度等等).控件也支

探讨ASP.NET 2.0中的Web控件改进技术

asp.net|web|控件 ASP.NET 2.0并没有抛弃1.1版本中的任何现有控件,而是增加了一组新的控件;同时还引入了若干新的控件开发技术.本系列文章将对这些内容展开全面探讨. 一. 引言 到目前为止,你可能已经了解了大量的ASP.NET 2.0新特征-母版页面,主题,提供者,等等--所有这样内容都相当精彩;但是,你是否了解到有关定制Web控件开发方面的重大变化?这正是我在本文中所想讨论的.如果你已经从事于控件开发,那么,我想本文所描述的ASP.NET 2.0中的新的改进特征会立即应用于