//
封装一个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(0, this.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 == 0) return;
foreach (TreeNode chileTNT in TNC)
...{
if (chileTNT.Value == select)
...{
chileTNT.Checked = true;
return;
}
SelectChileNotes(chileTNT.ChildNodes, select);
}
}
}
}
// 本封装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(0, this.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 == 0) return;
foreach (TreeNode chileTNT in TNC)
...{
if (chileTNT.Value == select)
...{
chileTNT.Checked = true;
return;
}
SelectChileNotes(chileTNT.ChildNodes, select);
}
}
}
}