用户控件,扩展TreeView
来源:互联网 发布:淘宝单号网 编辑:程序博客网 时间:2024/05/23 17:59
using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;
using SunSoft.BLL;
/**//// <summary>
/// 用户自定义TreeView控件
/// author lutiehui
/// date 20070605
/// </summary>
public partial class pages_tool_tree_SunSoftTree : System.Web.UI.UserControl
...{
private string _tableName = ""; //填充TreeView的数据源[表名]
/**//// <summary>
/// 填充TreeView的数据源[表名]
/// </summary>
public string TableName
...{
get ...{ return _tableName; }
set ...{ _tableName = value; }
}
private string _id = ""; //[节点编号]的字段名
/**//// <summary>
/// [节点编号]的字段名
/// </summary>
public string Id
...{
get ...{ return _id; }
set ...{ _id = value; }
}
private string _preId = ""; //[父节点编号]的字段名
/**//// <summary>
/// [父节点编号]的字段名
/// </summary>
public string PreId
...{
get ...{ return _preId; }
set ...{ _preId = value; }
}
private string _treeName = ""; //[节点名称]的字段名
/**//// <summary>
/// [节点名称]的字段名
/// </summary>
public string TreeName
...{
get ...{ return _treeName; }
set ...{ _treeName = value; }
}
private string _rootValue = ""; //当节点为根节点时,其_preId字段的值
/**//// <summary>
/// 当节点为根节点时,其_preId字段的值
/// </summary>
public string RootValue
...{
get ...{ return _rootValue; }
set ...{ _rootValue = value; }
}
private string _fullPath; //得到[机构全称]的字段名
/**//// <summary>
/// 得到[机构全称]的字段名
/// </summary>
public string FullPath
...{
get ...{ return _fullPath; }
set ...{ _fullPath = value; }
}
//实例化一个数据集对象
DataSet vDs = new DataSet();
//实例化一个Tool对象,用已实现相应的业务逻辑
Tool vT = new Tool();
string sql = "";
protected void Page_Load(object sender, EventArgs e)
...{
//控件加载时,动态从数据源里取得相应数据
WorkTreeViewBind();
}
/**//// <summary>
/// 绑定数据到TreeView中的方法
/// </summary>
public void WorkTreeViewBind()
...{
TreeView1.Nodes.Clear();
string selectTableByNameStr = "select * from " + this._tableName;
vDs = vT.getData(selectTableByNameStr); //得到所有[_tableName]表中的数据
DataRow[] drs = vDs.Tables[0].Select(this._preId + "=" + this._rootValue);
foreach (DataRow treeRowRoot in drs)
...{
TreeNode rootNode = new TreeNode();
rootNode.Text = treeRowRoot[this._treeName].ToString();
//rootNode.DataPath = treeRowRoot[this._id].ToString();//获取绑定到节点数据的路径
TreeView1.Nodes.Add(rootNode);
long pid = long.Parse(treeRowRoot[this._id].ToString());
CreateNode(rootNode, pid);
}
TreeView1.ExpandAll();//保证TreeView在每次打开时都处于展开状态
}
/**//// <summary>
/// 递归,得到树节点
/// </summary>
/// <param name="parentnode">树节点</param>
/// <param name="preID">父节点ID</param>
public void CreateNode(TreeNode parentnode, long preID)
...{
DataRow[] drs = vDs.Tables[0].Select(this._preId + "=" + preID); ;
foreach (DataRow rw in drs)
...{
TreeNode childnode = new TreeNode();
childnode.Text = rw[this._treeName].ToString();
//childnode.Value = rw["id"].ToString(); //用于处理回发事件的数据[值]
parentnode.ChildNodes.Add(childnode);
string treeName = rw[this._treeName].ToString();
long pid = long.Parse(rw[this._id].ToString());
CreateNode(childnode, pid);
}
}
/**//// <summary>
/// 从数据库中删除节点。[包括节点下的所有子节点]
/// </summary>
/// <param name="strPath">选中节点的全路径</param>
/// <returns>true表示删除成功;否则,返之</returns>
public bool RemoveNode(string strPath)
...{
string path = strPath.Replace(" ","");//去除所有空值
sql = "delete " + this._tableName + " where " + this._fullPath + " like '" + path + "%'";
bool b = vT.Remove(sql);
return b;
}
/**//// <summary>
/// 获取从根节点到[选中]当前节点的全路径
/// </summary>
/// <returns>全路径</returns>
public string GetTreePath()
...{
if (TreeView1.SelectedNode != null)
return TreeView1.SelectedNode.ValuePath.Replace(" ","");
else
return "null";
}
/**//// <summary>
/// 获取选中节点的ID
/// </summary>
/// <returns>返回当前选中节点的ID</returns>
public long GetTreeId()
...{
string str = GetTreePath();
if (str != "null")//确定只有在选中节点的情况下,再能得到选中的节点ID
...{
string[] strArrary = str.Split('/');
long id = 0;
if (strArrary.Length == 1)
...{
sql = "select " + this._id + " from " + this._tableName + " where " + this._treeName + " = '" + strArrary[0] + "'";
return long.Parse(vT.getData(sql).Tables[0].Rows[0][0].ToString());
}
else
...{
for (int i = 0; i < strArrary.Length; i++)
...{
if (i == 0)
...{
sql = "select " + this._id + " from " + this._tableName + " where " + this._treeName + " = '" + strArrary[i] + "'";
id = long.Parse(vT.getData(sql).Tables[0].Rows[0][0].ToString());
}
else
...{
sql = "select " + this._id + " from " + this._tableName + " where " + this._treeName + " = '" + strArrary[i] + "' and " + this._preId + "=" + id;
id = long.Parse(vT.getData(sql).Tables[0].Rows[0][0].ToString());
}
}
return id;
}
}
else
return 0;
}
}
using System.Data;
using System.Configuration;
using System.Collections;
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;
using SunSoft.BLL;
/**//// <summary>
/// 用户自定义TreeView控件
/// author lutiehui
/// date 20070605
/// </summary>
public partial class pages_tool_tree_SunSoftTree : System.Web.UI.UserControl
...{
private string _tableName = ""; //填充TreeView的数据源[表名]
/**//// <summary>
/// 填充TreeView的数据源[表名]
/// </summary>
public string TableName
...{
get ...{ return _tableName; }
set ...{ _tableName = value; }
}
private string _id = ""; //[节点编号]的字段名
/**//// <summary>
/// [节点编号]的字段名
/// </summary>
public string Id
...{
get ...{ return _id; }
set ...{ _id = value; }
}
private string _preId = ""; //[父节点编号]的字段名
/**//// <summary>
/// [父节点编号]的字段名
/// </summary>
public string PreId
...{
get ...{ return _preId; }
set ...{ _preId = value; }
}
private string _treeName = ""; //[节点名称]的字段名
/**//// <summary>
/// [节点名称]的字段名
/// </summary>
public string TreeName
...{
get ...{ return _treeName; }
set ...{ _treeName = value; }
}
private string _rootValue = ""; //当节点为根节点时,其_preId字段的值
/**//// <summary>
/// 当节点为根节点时,其_preId字段的值
/// </summary>
public string RootValue
...{
get ...{ return _rootValue; }
set ...{ _rootValue = value; }
}
private string _fullPath; //得到[机构全称]的字段名
/**//// <summary>
/// 得到[机构全称]的字段名
/// </summary>
public string FullPath
...{
get ...{ return _fullPath; }
set ...{ _fullPath = value; }
}
//实例化一个数据集对象
DataSet vDs = new DataSet();
//实例化一个Tool对象,用已实现相应的业务逻辑
Tool vT = new Tool();
string sql = "";
protected void Page_Load(object sender, EventArgs e)
...{
//控件加载时,动态从数据源里取得相应数据
WorkTreeViewBind();
}
/**//// <summary>
/// 绑定数据到TreeView中的方法
/// </summary>
public void WorkTreeViewBind()
...{
TreeView1.Nodes.Clear();
string selectTableByNameStr = "select * from " + this._tableName;
vDs = vT.getData(selectTableByNameStr); //得到所有[_tableName]表中的数据
DataRow[] drs = vDs.Tables[0].Select(this._preId + "=" + this._rootValue);
foreach (DataRow treeRowRoot in drs)
...{
TreeNode rootNode = new TreeNode();
rootNode.Text = treeRowRoot[this._treeName].ToString();
//rootNode.DataPath = treeRowRoot[this._id].ToString();//获取绑定到节点数据的路径
TreeView1.Nodes.Add(rootNode);
long pid = long.Parse(treeRowRoot[this._id].ToString());
CreateNode(rootNode, pid);
}
TreeView1.ExpandAll();//保证TreeView在每次打开时都处于展开状态
}
/**//// <summary>
/// 递归,得到树节点
/// </summary>
/// <param name="parentnode">树节点</param>
/// <param name="preID">父节点ID</param>
public void CreateNode(TreeNode parentnode, long preID)
...{
DataRow[] drs = vDs.Tables[0].Select(this._preId + "=" + preID); ;
foreach (DataRow rw in drs)
...{
TreeNode childnode = new TreeNode();
childnode.Text = rw[this._treeName].ToString();
//childnode.Value = rw["id"].ToString(); //用于处理回发事件的数据[值]
parentnode.ChildNodes.Add(childnode);
string treeName = rw[this._treeName].ToString();
long pid = long.Parse(rw[this._id].ToString());
CreateNode(childnode, pid);
}
}
/**//// <summary>
/// 从数据库中删除节点。[包括节点下的所有子节点]
/// </summary>
/// <param name="strPath">选中节点的全路径</param>
/// <returns>true表示删除成功;否则,返之</returns>
public bool RemoveNode(string strPath)
...{
string path = strPath.Replace(" ","");//去除所有空值
sql = "delete " + this._tableName + " where " + this._fullPath + " like '" + path + "%'";
bool b = vT.Remove(sql);
return b;
}
/**//// <summary>
/// 获取从根节点到[选中]当前节点的全路径
/// </summary>
/// <returns>全路径</returns>
public string GetTreePath()
...{
if (TreeView1.SelectedNode != null)
return TreeView1.SelectedNode.ValuePath.Replace(" ","");
else
return "null";
}
/**//// <summary>
/// 获取选中节点的ID
/// </summary>
/// <returns>返回当前选中节点的ID</returns>
public long GetTreeId()
...{
string str = GetTreePath();
if (str != "null")//确定只有在选中节点的情况下,再能得到选中的节点ID
...{
string[] strArrary = str.Split('/');
long id = 0;
if (strArrary.Length == 1)
...{
sql = "select " + this._id + " from " + this._tableName + " where " + this._treeName + " = '" + strArrary[0] + "'";
return long.Parse(vT.getData(sql).Tables[0].Rows[0][0].ToString());
}
else
...{
for (int i = 0; i < strArrary.Length; i++)
...{
if (i == 0)
...{
sql = "select " + this._id + " from " + this._tableName + " where " + this._treeName + " = '" + strArrary[i] + "'";
id = long.Parse(vT.getData(sql).Tables[0].Rows[0][0].ToString());
}
else
...{
sql = "select " + this._id + " from " + this._tableName + " where " + this._treeName + " = '" + strArrary[i] + "' and " + this._preId + "=" + id;
id = long.Parse(vT.getData(sql).Tables[0].Rows[0][0].ToString());
}
}
return id;
}
}
else
return 0;
}
}
- 用户控件,扩展TreeView
- 扩展 TreeView 控件
- 扩展 TreeView 控件
- TreeView控件扩展
- 重画系列:重画TreeView控件(可扩展)
- 重画系列:重画TreeView控件(可扩展)
- WinForms中TreeView控件的扩展与使用
- 获取web 用户控件里的treeview 值
- TreeView控件
- TreeView 控件
- TreeView控件
- TreeView控件
- TreeView控件
- TreeView控件
- TreeView 控件
- TreeView控件
- TreeView控件
- TreeView控件
- 无法在Reporting Services 2005 配置管理器中安装数据库
- GDB调试技术
- 多快好省
- 回车键时按钮获得焦点
- 什么是 "X.509标准"
- 用户控件,扩展TreeView
- ASP.NET 2.0 状态管理 学习笔记( 二)
- C++高效程序设计
- 申请了一个域名y97523.cn
- C#的6种常用集合类大比拼(转)
- linux 常用网络命令
- 使用C++开发wxWidgets程序
- 将Orcas下的wpf项目迁移到VS2005
- 用GDB调试程序