自定义TreeView控件内容,通过读数据库!

SqlServer2000(注意:是通过推荐人或者安置人来定义树型结构的!)

HTML语言

<%@ Page language="c#" Codebehind="TreeView.aspx.cs" AutoEventWireup="false" Inherits="TestXml.TreeView" %>
<%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 <HEAD>
  <title>TreeView</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">
 </HEAD>
 <body bgcolor="#003366">
  <form id="Form1" method="post" runat="server">
   <iewc:TreeView id="TreeView1" style="Z-INDEX: 101; LEFT: 0px; POSITION: absolute; TOP: 0px" runat="server"></iewc:TreeView>
  </form>
 </body>
</HTML>

C#(*.cs)文件

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
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;
using Microsoft.Web.UI.WebControls;

namespace TestXml
{
 /// <summary>
 /// TreeView 的摘要说明。
 /// </summary>
 public class TreeView : System.Web.UI.Page
 {
  protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
  protected  DataView dv=new DataView ();
  int level=0;
  protected System.Web.UI.HtmlControls.HtmlTableCell info;
  int maxLevel=4;
  SqlConnection MyCon;
  SqlCommand MyCom;
  SqlDataAdapter MyData;

  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   if(!IsPostBack)
   {
    CreateNode(this.TreeView1);
   }
  }

  #region 创建树

  /// <summary>
  /// 根结点
  /// </summary>
  /// <param name="myTree">树</param>
  private void CreateNode(Microsoft.Web.UI.WebControls.TreeView myTree)
  {
   myTree.ToolTip = "点击查看网络图";
   string head="";
   TreeNode item = new TreeNode();

   if(Request.QueryString ["bh"]!=null)
   {
    item.Text =Request.QueryString ["bh"].Trim ();
    head=item.Text ;
   }
   else
   {
    item.Text ="公司";
    head="8888888888";
   }

   if(Request.QueryString ["level"]!=null)
   {
    string[] strs=Request.QueryString ["level"].Trim ().Split(",".ToCharArray());
    
    maxLevel=Convert.ToInt32 (strs[strs.Length -1]);
   }
   item.Expanded = true;
   myTree.Nodes.Add(item);
   InitTree(item.Nodes,head);
   
  }

  /// <summary>
  /// 初始化树
  /// </summary>
  /// <param name="Nds">nodes集合</param>
  /// <param name="anZhi">推荐人编号</param>
  private void InitTree(TreeNodeCollection Nds,string anZhi)
  {
   DataView tmpDV=this.CreateDataView ();
   tmpDV.RowFilter ="Tuijian='"+anZhi+"'";
   if(Request.QueryString ["az"]!=null)
   {
    tmpDV.RowFilter ="anzhi='"+anZhi+"'";
   }
   TreeNode tmp;

   foreach(DataRowView drv in tmpDV)
   {
    
    try
    {
     tmp=new TreeNode ();
     tmp.Text =drv["bianhao"].ToString ()+" "+drv["Name"].ToString ();
     tmp.NavigateUrl ="TreeView.aspx?bh="+drv["bianhao"].ToString ();
     tmp.DefaultStyle .CssText ="color:#FFFFFF";
     if(level<maxLevel)
     {
      tmp.Expanded =true;
     }
     Nds.Add (tmp);
     level++;

    
     InitTree (tmp.Nodes ,drv["bianhao"].ToString ().Trim ());  //继续递归调用
    }
    catch{}
   }
  }

  /// <summary>
  /// 获取数据
  /// </summary>
  /// <returns></returns>
  private DataView CreateDataView()
  {
   DataTable dt;
   MyCon = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["connString"].ToString());
   string sql="select bianhao,Name,Tuijian,Anzhi from h_info";
   MyData = new SqlDataAdapter(sql,MyCon);
   DataSet ds = new DataSet();
   MyData.Fill(ds);
   dt = ds.Tables[0];
   return dt.DefaultView;
  }


  #endregion

  #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
 }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值