天天看点

C#.Net中TreeView控件应用详解!

虽然网上有很多关于TreeView应用的详细资料和源码,但是写得都比较笼统和模糊,看不太懂,可能是文字太多了也不想去看,只好自己琢磨了!我将我在项目中应用TreeView时遇到的疑问和心得体会记录如下:

1.安装和引用控件。

可以到微软网站上下载"IEWebControls.exe"安装程序,或在baidu或google上搜一下即可很容易找到这个安装程序。下载到本机后运行"IEWebControls.exe",默认安装在系统盘的Program Files文件夹下,在Program Files文件夹下找到IE Web Controls文件夹。

2.递归调用实现

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 System.Data.OracleClient;

using Microsoft.Web.UI.WebControls;

//using XJSys.DataBase;

namespace XJSys

{

 /// <summary>

 /// Left 的摘要说明。

 /// </summary>

 public class Left : System.Web.UI.Page

 {

  protected Microsoft.Web.UI.WebControls.TreeView XJTV;

        //public DB DataConn=new DB(); 

  public OracleConnection Conn = new OracleConnection(ConnStr);

  //private void Page_Load(object sender, System.EventArgs e)

  //{

   //在此处放置用户代码以初始化页面

  //}

  DataSet ds=new DataSet();

  private void Page_Load(object sender, System.EventArgs e)

  {

   // 在此处放置用户代码以初始化页面

   if(!Page.IsPostBack)

   {

    //创建DataSet对象

    string Message="";

    OracleCommand CmdDS= new OracleCommand("select * from TModel where MKJB='2'",Conn);

    OracleDataAdapter adp = new OracleDataAdapter(CmdDS);

    adp.Fill(ds);

    if(ds.Tables[0].Rows.Count >0)

    {

     Message="1";

    }

    else

    {

     Message="0";

    }

    ds.Dispose();

    //创建DataReader对象

    OracleCommand Cmd=new OracleCommand("select * from XJ_TModel where MKJB='1'",Conn);

    Conn.Open();

    OracleDataReader OraDataReader=Cmd.ExecuteReader();

    while(OraDataReader.Read())

    {

     TreeNode tmpNr = new TreeNode();

     tmpNr.ID = OraDataReader["MKBH"].ToString();

     tmpNr.Text = OraDataReader["MKMC"].ToString();

     tmpNr.Target = "main";

     tmpNr.NavigateUrl = OraDataReader["MKLJ"].ToString();

     tmpNr.Expanded = true;

     XJTV.Nodes.Add(tmpNr);

     if (Message=="1")

     {

      InitTreeView(tmpNr);

     }

    }

    Conn.Close();

   }

  }

  #region Web 窗体设计器生成的代码

  override protected void OnInit(EventArgs e)

  {

   //

   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。

   //

   InitializeComponent();

   base.OnInit(e);

  }

  /// <summary>

  /// 设计器支持所需的方法 - 不要使用代码编辑器修改

  /// 此方法的内容。

  /// </summary>

  private void InitializeComponent()

  {   

   this.XJTV.DataBinding += new System.EventHandler(this.XJTV_DataBinding);

   this.Load += new System.EventHandler(this.Page_Load);

  }

  #endregion

  public void InitTreeView(TreeNode tmpNr)

  {

   foreach(DataRow dr in ds.Tables[0].Rows)

   {

    if(dr["HIDEID"].ToString() == tmpNr.ID)

    {

     TreeNode tmpNd = new TreeNode();

     tmpNd.ID = dr["MKBH"].ToString();

     tmpNd.Text = dr["MKMC"].ToString();

     tmpNd.Target = "main";

     tmpNd.NavigateUrl = dr["MKLJ"].ToString();

     tmpNr.Nodes.Add(tmpNd);

     InitTreeView(tmpNd);

    }    

   }

  }

  private void XJTV_DataBinding(object sender, System.EventArgs e)

  {

  }

 }

}

继续阅读