ASP.NET中TreeView用法

 下面是一个Treeview动态的绑定3层深度的树的代码,有需要的朋友可以参考一下

代码如下:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
using Common;
using DataAccess;
 
public partial class Controls_ProductType2 : System.Web.UI.UserControl
{
 
 
    ProductType productType = new ProductType();
    Product product = new Product();
 
  protected void TreeView_TreeNodePopulate(object sender, TreeNodeEventArgs e)
    {
 
        if (e.Node.ChildNodes.Count == 0)
        {
            switch (e.Node.Depth)
            {
                case 0:
                    PopulateCategories(e.Node);
                    break;
                case 1:
                    PopulateProductType(e.Node);
                    break;
                case 2:
                    PopulateProducts(e.Node);
                    break;
            }
        }
 
      //  int i = TreeToXml.TreeToXML(TreeView1, "D:/TreeToXML.xml");
 
    }
 
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
 
    //第一级节点(parentID=0)
    void PopulateCategories(TreeNode node)
    {
        DataTable dt = new DataTable();
        dt = productType.GetListByFatherNode();
 
        if (dt.Rows.Count > 0)
        {
            foreach (DataRow row in dt.Rows)
            {
                TreeNode NewNode = new TreeNode(row["ProductTypeName"].ToString(), row["ProductTypeID"].ToString(),"","../WebProductList.aspx?productTypeIdOne="+ row["ProductTypeID"].ToString() +"","");
                NewNode.PopulateOnDemand = true;
                NewNode.SelectAction = TreeNodeSelectAction.Expand;
                node.ChildNodes.Add(NewNode);
                node.Expanded = true ;
            }
        }
 
    }
 
    //第二级节点
    void PopulateProductType(TreeNode node)
    {
        DataTable dt = new DataTable();
        QueryParam queryparam = new QueryParam();
        queryparam.Add("ParentID", QueryParam.RELATION.EQ, "" + node.Value + "");
        dt = productType.GetListByBranchNode(queryparam);
 
        if (dt.Rows.Count > 0)
        {
            foreach (DataRow row in dt.Rows)
            {
                TreeNode NewNode = new TreeNode(row["ProductTypeName"].ToString(), row["ProductTypeID"].ToString(), "", "../WebProductList.aspx?productTypeIdTwo=" + row["ProductTypeID"].ToString() + "", "");
                NewNode.PopulateOnDemand = true;
                NewNode.SelectAction = TreeNodeSelectAction.Expand;
                node.ChildNodes.Add(NewNode);
                node.Expanded = false ;
            }
        }
    }
 
    //第三个节点
    void PopulateProducts(TreeNode node)
    {
        DataTable dt = new DataTable();
        QueryParam queryparam = new QueryParam();
        queryparam.Add("ProductTypeItemID", QueryParam.RELATION.EQ, "" + node.Value + "");
        dt = product.GetList(queryparam);
 
        if (dt.Rows.Count > 0)
        {
            foreach (DataRow row in dt.Rows)
            {
                TreeNode NewNode = new TreeNode(row["ProductName"].ToString(), row["ProductID"].ToString(), "", "../WebProductDetaile.aspx?productID=" + row["ProductID"].ToString() + "", "");
                //NewNode.PopulateOnDemand = false;
                //NewNode.SelectAction = TreeNodeSelectAction.None;
                NewNode.PopulateOnDemand =true ;
                NewNode.SelectAction = TreeNodeSelectAction.Expand ;
                node.ChildNodes.Add(NewNode);
                node.Expanded = false;
            }
        }
    }
 
 
}
 

时间: 2024-10-28 06:29:02

ASP.NET中TreeView用法的相关文章

关于ASP.NET中TreeView用法的一个小例子_实用技巧

复制代码 代码如下: using System;using System.Collections;using System.Configuration;using System.Data;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebContr

ASP.NET中ServerPush用法实例分析

 本文实例讲述了ASP.NET中ServerPush用法.分享给大家供大家参考.具体分析如下: 什么是ServerPush,服务器向客户端"推送",其实就是"长连接" 只有浏览器请求服务器端,服务器端才给浏览器响应数据,不会主动向浏览器推送数据,这是一种安全考虑,也是提高服务器的性能考虑,如果服务器向浏览器主动推送数据,就要用到ServerPush等技术模拟实现. 举个例子: 通过两个页面互相发送消息实现,消息放到数据库. 1 2 3 4 5 6 7 8 9 10

ASP.NET中ServerPush用法实例分析_实用技巧

本文实例讲述了ASP.NET中ServerPush用法.分享给大家供大家参考.具体分析如下: 什么是ServerPush,服务器向客户端"推送",其实就是"长连接" 只有浏览器请求服务器端,服务器端才给浏览器响应数据,不会主动向浏览器推送数据,这是一种安全考虑,也是提高服务器的性能考虑,如果服务器向浏览器主动推送数据,就要用到ServerPush等技术模拟实现. 举个例子: 通过两个页面互相发送消息实现,消息放到数据库. /// <summary> //

ASP.NET中TreeView控件使用小结

asp.net|treeview|控件 中国IT动力,最新最全的IT技术教程最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论 ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql 服务器 Win2000

ASP.NET中IsPostBack用法详解_实用技巧

本文针对ASP.NET中IsPostBack的用法进行了详细的说明,有助于读者更准确的掌握ASP.NET中IsPostBack的用法. 一.IsPostBack介绍: Page.IsPostBack是一个标志:当前请求是否第一次打开.调用方法为:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者this.Page.IsPostBack,它们都等价. 1)当通过IE的地址栏等方式打开一个URL时是第一次打开, 当通过页面的提交按钮或能引起提交的按钮以POS

asp.net中Treeview数据绑定与动态增加节点示例

TreeView数据绑定 在ASP.NET中如何实现数据库与TreeView控件的数据绑定呢?花些时间自己编写了一个演示程序,包括有Access数据库,你可复制这两个代码做下测试,测试数据库文件后附下载. Left.aspx 代码如下:  代码如下 复制代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Left.aspx.cs" Inherits="Left&qu

Asp.net中Treeview终极解决方案

asp.net|treeview|解决 最近在做权限模块,挺头痛的东西.不包括权限部分的业务,还包括权限部分的界面实现.由于采用了微软的Treeview控件来分配权限,所以碰到网上热烈讨论的有关TreeView操作的刷新问题,在众位先人和同事的帮助下,终于使Treeview的问题得到了较好的解决.1.前台控制展开,收缩,Check/UnCheck,后台控制SelectedIndexChanged.解决方法:将autopostback设置成false;  在body里添加  <body  > 

ASP.NET中TreeView的运用

asp.net|treeview   首先需要创建一个数据库表test,字段包括NODEID.PARENTID.NODENAME.ADDERSS.ICON.linkUrLNODEID是在数据库中作为节点的唯一标识,这里为了方便,将其设置为标识:PARENTID表示每个节点的上级节点ID,如该节点无上级,则为0:NODENAME是节点在页面上显示的名称:以上三个字段应不能为空ADDERSS地址:ICON节点图片:linkUrL节点链接地址:以上三个字段用与不用不是必须的,因实际情况而定,这里因为使

asp.net中treeview怎么实现不刷新?没有autopostback这个属性!

问题描述 我用的是.NET2005里面的TREEVIEW控件,是做WEB窗体!里面的TREEVIEW没有autopostback这个属性!我想单击节点的时候得到节点的值,但不刷新页面!所以onselectchanage这个事件是没用的!请各位高手帮帮忙!急!!!!!!!!! 解决方案 解决方案二:顶!!!!高手在哪里啊!!!!!!!!!!解决方案三:TreeView1.Attributes.Add("onclick","varele=document.createElemen