ASP.NET中TreeView的運用

來源:互聯網
上載者:User
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
{
 /// <summary>
 /// WebForm1 的摘要說明。
 /// </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 = "<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 Form設計器產生的程式碼
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 該調用是 ASP.NET Web Form設計器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 設計器支援所需的方法 - 不要使用代碼編輯器修改
  /// 此方法的內容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.Load += new System.EventHandler(this.Page_Load);
  }
  #endregion
 }
}



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.