TreeView的ASP.NET实现

原创 2006年05月24日 16:41:00

Tree.aspx.cs代码如下:

using Microsoft.Web.UI.WebControls;
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace test
{
 /// <summary>
 /// Tree 的摘要说明。
 /// </summary>
 public class Tree : System.Web.UI.Page
 {
  protected Microsoft.Web.UI.WebControls.TreeView TreeView1;

  DataSet objDataSet = new DataSet();
 
  private void Page_Load(object sender, System.EventArgs e)
  {   
   if (!this.IsPostBack)
   {
    //CreateDataSet();
    intiTree(TreeView1.Nodes, "0");   
   }
  }

  private void intiTree(TreeNodeCollection Nds , int parent_id)
  {
   DataView dv = new DataView() ;
   TreeNode tmpNd;
   int strId;
   dv.Table = objDataSet.Tables["product_code_table"];
   dv.RowFilter = "parent_id='" + parent_id + "'";   
   
   foreach(DataRowView objRow in dv)
   {
    tmpNd = new TreeNode();
    strId = (int)objRow["node_id"];
    tmpNd.ID = strId.ToString();
    tmpNd.Text = objRow["node_name"].ToString();
    tmpNd.ExpandedImageUrl = objRow["img_expanded"].ToString();
    tmpNd.ImageUrl = objRow["img_original"].ToString() ;
    tmpNd.NavigateUrl = objRow["navigate_url"].ToString();
    tmpNd.CheckBox = true;
    Nds.Add(tmpNd);
    intiTree(Nds[Nds.Count-1].Nodes, strId);              
   }          
  }

  private void CreateDataSet()
  {
   OleDbConnection dbconn = new OleDbConnection(DataBaseConfiguration.ConnectionString);
   dbconn.Open();
   OleDbCommand cmd = dbconn.CreateCommand();
   cmd.CommandText = "select * from product_code_table";
   cmd.CommandType = CommandType.Text;
   OleDbDataAdapter objAdapter = new OleDbDataAdapter(cmd.CommandText, dbconn);
   objAdapter.Fill(objDataSet, "product_code_table");
   dbconn.Close(); 
  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion
 }
}

 

treeview.aspx代码如下:

<%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Page language="c#" Codebehind="Tree.aspx.cs" AutoEventWireup="false" Inherits="test.Tree" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 <HEAD>
  <title>Tree</title>
  <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  <meta name="CODE_LANGUAGE" Content="C#">
  <meta name="vs_defaultClientScript" content="JavaScript">
  <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
  <script language="JavaScript"> 
   function  initTree()
   {
    var tree = document.all["TreeView1"];
    //tree.attachEvent("onexpand", DoExpand); // 节点展开事件
    tree.attachEvent("onclick", DoClick); // 节点点击事件
    //tree.attachEvent("oncollapse", DoCollapse); // 节点收缩事件
   }
   
   function DoCollapse()
   {
   }
   
   function DoClick()
   {
    var currentNode = this.TreeView1.clickedNodeIndex;
    var product_code_table_id = this.TreeView1.getTreeNode(currentNode).getAttribute("ID");
    var url = "MainForm.aspx?product_code_table_id=" + product_code_table_id;
    parent.parent.parent.tabset.location = url;;
   }
   
   function DoExpand()
   {
    var temp = this.TreeView1.clickedNodeIndex;
    alert(this.TreeView1.getTreeNode(temp).getAttribute("NavigateUrl"));
    var nodes = new Array();
    nodes = this.TreeView1.getChildren();
    for(i=0;i<nodes.length;i++)
    {
     if(i!=temp)
     {
      if(i<10) nodeIndex = "0"+i;//我这只用到了四个节点的,十个以上的自已试试看吧。
      this.TreeView1.getTreeNode(nodeIndex).setAttribute('expanded','false');
     }
    }
   }
  </script>
 </HEAD>
 <body MS_POSITIONING="GridLayout" onload="initTree();">
  <form id="Form1" method="post" runat="server">
   <iewc:TreeView id="TreeView1" style="Z-INDEX: 101; LEFT: 40px; POSITION: absolute; TOP: 40px" runat="server"></iewc:TreeView>
  </form>
 </body>
</HTML>

网站导航——网站地图和TreeView的使用

ASP.NET站点导航能够在一个中央位置存储指向所有页面的连接,并在列表中呈现这些连接,也可以使用一个特定的Web服务器控件在每个页面上呈现导航菜单。设计站点导航时,使用站点地图描述站点的逻辑结构,使...
  • zc707212993
  • zc707212993
  • 2013年05月12日 19:44
  • 880

.net服务器控件使用总结之TreeView

使用TreeView控件有三种方式 方式一:在控件属性里面写死。       应用场景:在数据一成不变的情况下,可以使用。实际项目中极少使用。 方式二:通过xml文件读取目录。       应...
  • yuchang2012
  • yuchang2012
  • 2013年10月18日 14:59
  • 985

ASP.NET通过递归添加树(Treeview)

先来看看效果,基本上就是这样的。 所谓树,无非就是2点,第一个:根节点,第二:叶子节点,其中叶子节点中还可能有叶子节点,但是根节点始终只有一个。 下面贴上 各部分的代码 1.PAGE_LOA...
  • yangliweng2
  • yangliweng2
  • 2014年12月23日 21:51
  • 427

TreeView 设置样式

参考微软demo做了 一个类似差不多样式
  • suntanyong88
  • suntanyong88
  • 2014年11月02日 17:17
  • 7199

C# treeview控件部分节点添加checkbox

转自:http://www.cnblogs.com/xiaolifeidao/p/3178569.html 一、先初始化treeview this.treeView...
  • ainixiaozhuzi
  • ainixiaozhuzi
  • 2014年03月10日 23:14
  • 2084

Qt:5.5新特性,TreeView使用(quick)

在5.5版本里面,quick新加入了TreeView,以前是没有的。 在这里我来介绍一下简单的使用。 上源码(一共6个文件) main.cpp #include #include #incl...
  • wsj18808050
  • wsj18808050
  • 2015年08月10日 20:05
  • 4862

c#——Winform TreeView 赋值(id,name,pid)类型数据

没想到给treeview赋值这么麻烦 还要用递归 不想多说,直接上代码 var dgvTree = e.Control as DataGridViewTreeViewEditingCon...
  • Shiyaru1314
  • Shiyaru1314
  • 2016年07月28日 14:02
  • 1073

asp.net母版页学习总结

Asp.Net母版页的使用 http://www.cnblogs.com/xqhppt/archive/2010/10/10/1847348.html 背景:回顾下以前用到过的asp.ne...
  • bcbobo21cn
  • bcbobo21cn
  • 2016年10月07日 21:31
  • 1791

ASP.NET的面包屑导航控件、树形导航控件、菜单控件

ASP.NET的面包屑导航控件、树形导航控件、菜单控件。 1、 面包屑导航控件——SiteMapPath控件 SiteMapPath控件可以为站点提供“面包屑导航”的功能。 1.1 ...
  • u010075060
  • u010075060
  • 2015年04月23日 18:19
  • 2417

如何实现具有层次结构的 TreeView 模版使用

数据模板 (DataTemplate) 和数据绑定 (Data Binding) 为了把数据和界面进行关联,我们要做 3 件事: 1、在 MainWindow.xaml 中添加一个 Tre...
  • AAA123524457
  • AAA123524457
  • 2015年06月25日 14:38
  • 1351
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TreeView的ASP.NET实现
举报原因:
原因补充:

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