tree.cs
来自「《精通ASP.NET2.0网络应用系统开发》书中的源码」· CS 代码 · 共 206 行
CS
206 行
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
/// <summary>
/// Summary description for Tree
/// </summary>
namespace WebDBManage
{
public class TreeProperty
{
public String TreeID;
public String TableName;
public String OrderBy;
}
public class Tree
{
/// 定义查询数据库的SQL语句
public static readonly string GETTREEMAXID = "SELECT TableTreeID FROM TableTree ORDER BY TableTreeID DESC";
public static readonly string GETTREES = "SELECT * From TableTree";
public static readonly string MENUNODETEXT = "MENUNODETEXT";
/// <summary>
/// 创建树
/// </summary>
public void InitTree(TreeView tree,DataSet ds,bool expand)
{
tree.Nodes.Clear();
if (null == ds) return;
if (ds.Tables.Count <= 0) return;
DataRow[] rowList = ds.Tables[0].Select(TableTree.FATHERID + "='-1'",TableTree.ORDERBY);
foreach (DataRow row in rowList)
{
TreeNode node = new TreeNode();
node.Text = row[TableTree.DESN].ToString();
node.NavigateUrl = "MainManage.aspx?TableName=" + row[TableTree.TABLENAME].ToString()
+ "&TreeID=" + row[TableTree.TABLETREEID].ToString();
node.Target = "Main";
node.Value = row[TableTree.TABLETREEID].ToString() + "|" + row[TableTree.TABLENAME].ToString();
tree.Nodes.Add(node);
CreateSubTree(node,ds,expand);
}
}
/// <summary>
/// 创建树的子结点
/// </summary>
public void CreateSubTree(TreeNode parentNode,DataSet ds,bool expand)
{
string value = parentNode.Value.Substring(0,parentNode.Value.IndexOf("|"));
DataRow[] rowList = ds.Tables[0].Select(TableTree.FATHERID + "='" + value + "'",TableTree.ORDERBY);
foreach (DataRow row in rowList)
{
TreeNode node = new TreeNode();
node.Text = row[TableTree.DESN].ToString();
node.NavigateUrl = "MainManage.aspx?TableName=" + row[TableTree.TABLENAME].ToString()
+ "&TreeID=" + row[TableTree.TABLETREEID].ToString();
node.Target = "Main";
node.Value = row[TableTree.TABLETREEID].ToString() + "|" + row[TableTree.TABLENAME].ToString();
parentNode.ChildNodes.Add(node);
CreateSubTree(node,ds,expand);
}
}
/// <summary>
/// 创建树
/// </summary>
public void InitTree(TreeView tree,DataSet ds,int treeID,bool selected)
{
tree.Nodes.Clear();
if (null == ds) return;
if (ds.Tables.Count <= 0) return;
DataRow[] rowList = ds.Tables[0].Select(TableTree.FATHERID + "='-1'",TableTree.ORDERBY);
foreach (DataRow row in rowList)
{
TreeNode node = new TreeNode();
node.Text = row[TableTree.DESN].ToString();
node.Value = row[TableTree.TABLETREEID].ToString() + "|" + row[TableTree.TABLENAME].ToString();
tree.Nodes.Add(node);
if (node.Value.Substring(0,node.Value.IndexOf("|")) == treeID.ToString())
{
node.Select();
if (node.Parent != null)
{
node.Parent.Expand();
}
}
CreateSubTree(node,ds,treeID,selected);
}
}
/// <summary>
/// 创建树的子结点
/// </summary>
public void CreateSubTree(TreeNode parentNode,DataSet ds,int treeID,bool selected)
{
string value = parentNode.Value.Substring(0,parentNode.Value.IndexOf("|"));
DataRow[] rowList = ds.Tables[0].Select(TableTree.FATHERID + "='" + value + "'",TableTree.ORDERBY);
foreach (DataRow row in rowList)
{
TreeNode node = new TreeNode();
node.Text = row[TableTree.DESN].ToString();
node.Value = row[TableTree.TABLETREEID].ToString() + "|" + row[TableTree.TABLENAME].ToString();
parentNode.ChildNodes.Add(node);
///扩展父节点
if (node.Value.Substring(0,node.Value.IndexOf("|")) == treeID.ToString())
{
node.Select();
parentNode.Expand();
}
CreateSubTree(node,ds,treeID,selected);
}
}
/// <summary>
/// 获取节点的前一个同辈兄弟节点
/// </summary>
/// <param name="node"></param>
/// <returns></returns>
public static TreeNode PrevNode(TreeNode node)
{
if(node.Parent == null)
{
return((TreeNode)null);
}
int index = node.Parent.ChildNodes.IndexOf(node);
if (index <= 0) return ((TreeNode)null);
return (node.Parent.ChildNodes[index - 1]);
}
/// <summary>
/// 获取节点的后一个同辈兄弟节点
/// </summary>
/// <param name="node"></param>
/// <returns></returns>
public static TreeNode NextNode(TreeNode node)
{
if (node.Parent == null)
{
return ((TreeNode)null);
}
int index = node.Parent.ChildNodes.IndexOf(node);
if (index <= -1) return ((TreeNode)null);
if (index >= node.Parent.ChildNodes.Count -1) return ((TreeNode)null);
return (node.Parent.ChildNodes[index + 1]);
}
/// <summary>
/// 判定某个节点的是否存在相同名称的兄弟节点
/// </summary>
public static bool IsExistNode(TreeNode currentNode,String nodeName)
{
if (currentNode.Parent == null)
{
return (false);
}
foreach (TreeNode node in currentNode.Parent.ChildNodes)
{
if (node != currentNode)
{
if (node.Text.Trim().ToUpper() == nodeName.Trim().ToUpper())
{
return (true);
}
}
}
return (false);
}
/// <summary>
/// 在树中判断某个结点是否存在某个特定的子结点
/// </summary>
public bool IsExistSubNode(TreeNode parentNode,String nodeName)
{
foreach (TreeNode node in parentNode.ChildNodes)
{
if (node.Text.Trim().ToUpper() == nodeName.Trim().ToUpper())
{
return (true);
}
}
return (false);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?