bird

 

封装一个TreeView

//封装一个TreeView封装一个TreeView
//本封装TreeView 适合 01 0101 010101无限递归
//引用控件时 this.TreeView1.DataSet=(DataSet),该DataSet必须包含 Code,Name,Url字段

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Web.UI.WebControls;

//程序设计:陈文利 
//QQ:36055915 MSN:sinofishing@hotmail.com

namespace EastSoft.Web.Control
{
       
public class ETreeView:System.Web.UI.WebControls.TreeView
       
{
           
public ETreeView()
           
{
           
           }
       
           
protected override void OnSelectedNodeChanged(EventArgs e)
           
{
               
string s = "";
               s 
= this.SelectedNode.Text.Remove(0this.SelectedNode.Text.IndexOf("]"0+ 1);
               m_SelectText 
= s;
               
base.OnSelectedNodeChanged(e);
           }

           
private string m_SelectText="";
           
public string SelectText get return m_SelectText; } set { m_SelectText = value; } }
      
           
private DataSet ds;
           
public DataSet DataSet get {return ds;}set {     ds = value;     RootNode((TreeNode)null); } }
           
private int len = 2;
           
public void RootNode(TreeNode pNode)
           
{
               
this.Nodes.Clear();
               
if (ds == null)
                   
return;
               DataView dvTree 
= new DataView(ds.Tables[0]);
               dvTree.RowFilter 
= "len(Code)=" + len.ToString();
               
foreach (DataRowView Row in dvTree)
               
{
                   TreeNode Node 
= new TreeNode();
                   Node.Value 
= Row["Code"].ToString();
                   Node.Text 
="[" + Row["Code"].ToString() + "]"+     Row["Name"].ToString();
                   Node.NavigateUrl 
= Row["Url"].ToString();
                   
this.Nodes.Add(Node);
                   AddNode(Node, len);
               }
           

           }

           
public void AddNode(TreeNode pNode, int len)
           
{           
               len 
= len + 2;
               DataView dvTree 
= new DataView(ds.Tables[0]);
               dvTree.RowFilter 
= "len(Code)=" + len.ToString() + "and Code like '" + pNode.Value + "%'";
               
foreach (DataRowView Row in dvTree)
               
{
                   TreeNode Node 
= new TreeNode();
                   Node.Value 
= Row["Code"].ToString();
                   Node.Text 
= "[" + Row["Code"].ToString() + "]" + Row["Name"].ToString();
                   Node.NavigateUrl 
= Row["Url"].ToString();
                   pNode.ChildNodes.Add(Node);
                   AddNode(Node, len);
               }

           }

           
private DataSet m_CheckedNodeDataSet = new DataSet();
           
public DataSet CheckedNodeDataSet
           
{
               
get
               
{
                   
return m_CheckedNodeDataSet;
               }

               
set
               
{
                   m_CheckedNodeDataSet 
= value;
                   CheckedBoot();
               }

            
           }

           
private void CheckedBoot()
           
{
               
foreach (DataRow dr in m_CheckedNodeDataSet.Tables[0].Rows)
               
{

                   
foreach (TreeNode chileTNT in this.Nodes)
                   
{
                       
if (chileTNT.Value == dr[0].ToString())
                       
{
                           chileTNT.Checked 
= true;

                       }

                       SelectChileNotes(chileTNT.ChildNodes, dr[
0].ToString());
                   }

               }

           }

           
private void SelectChileNotes(TreeNodeCollection TNC, string select)
           
{
               
if (TNC.Count == 0return;
               
foreach (TreeNode chileTNT in TNC)
               
{
                   
if (chileTNT.Value == select)
                   
{
                       chileTNT.Checked 
= true;
                       
return;
                   }

                   SelectChileNotes(chileTNT.ChildNodes, select);
               }

           }

       }

}


 

posted on 2007-08-16 17:44  鸟人  阅读(288)  评论(0编辑  收藏  举报

导航