ASP.NET中TreeView的运用

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

接着向设计窗体添加一个treeview控件  
如果还没添加过此控件的请到以下地址下载并安装,添加引用Microsoft.Web.UI.WebControls.dll然后到工具箱内添加控件  
http://msdn.microsoft.com/archive/en-us/samples/internet/asp_dot_net_servercontrols/webcontrols/default.asp  



下面是aspx.cs部分的代码


using System;  
using System.Collections;  
using System.ComponentModel;  
using System.Data;  
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 IOA  
{  
 ///
1<summary>  
2     /// WebForm1 的摘要说明。  
3     /// </summary>

public class WebForm1 : System.Web.UI.Page
 {
  protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
protected Classes.Deptartment myDt=new IOA.Classes.Deptartment();//我把与数据库链接以及对数据库的操作请求写在此类中
这里数据库的链接就不具体写出来了,链接数据库以后
通过select * from test返回值传给程序中的ds变
量即可,记得返回的值的类型是DataSet

  private void Page_Load(object sender, System.EventArgs e)  
  {  
   InitTreeView(this.TreeView1.Nodes);  
   // 在此处放置用户代码以初始化页面  
  }  
    
  public void InitTreeView(TreeNodeCollection node)  
  {  
   this.InitTree(node,"0");  
  }


  public void InitTree(TreeNodeCollection Nds,string parentId)  
  {  
   DataSet ds=new DataSet();  
   ds=myDt.TreeInfo();  
   DataView dv = new DataView();  
    
   TreeNode tmpNd;


   string intId;


   dv.Table = ds.Tables[0];


   dv.RowFilter = "PARENTID = " + parentId;


   foreach(DataRowView drv in dv)  
   {


    tmpNd = new TreeNode();


    tmpNd.ID = drv["NODEID"].ToString();


    if(drv["linkUrL"].ToString().Trim() != "")  
    {  
     tmpNd.Text = "
1<a href='"+drv["linkUrL"].ToString().Trim() +"' target="mainFrame">"+drv["NODENAME"].ToString()+"</a>

";
    }
    else
    {
     tmpNd.Text = drv["NODENAME"].ToString();
    }

    Nds.Add(tmpNd);


    intId = drv["PARENTID"].ToString();


    InitTree(tmpNd.Nodes,tmpNd.ID);  
   }  
  }  
  #region Web 窗体设计器生成的代码  
  override protected void OnInit(EventArgs e)  
  {  
   //  
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。  
   //  
   InitializeComponent();  
   base.OnInit(e);  
  }  
    
  ///
1<summary>  
2      /// 设计器支持所需的方法 - 不要使用代码编辑器修改  
3      /// 此方法的内容。  
4      /// </summary>

private void InitializeComponent()
  {   
   this.Load += new System.EventHandler(this.Page_Load);

  }  
  #endregion  
 }  
}
Published At
Categories with Web编程
Tagged with
comments powered by Disqus