62,074
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 控件绑定
/// </summary>
private void TreeViewBind()
{
string sql = "select * from tree";
DataSet ds = SqlHelper.dataSet(SqlHelper.connectionString, CommandType.Text, sql);//此处调用了获的dt的代码,不加入了,自己写.
DataView dv = ds.Tables[0].DefaultView;
dv.RowFilter = "treeNo=0";
TreeView1.ShowCheckBoxes = TreeNodeTypes.All;
foreach (DataRowView drv in dv)
{
TreeNode node = new TreeNode();
node.Text = drv["treeName"].ToString();
node.Value = drv["treeId"].ToString();
node.Expanded = false;
TreeView1.Nodes.Add(node);
AddReplies(dv, node);
}
}
/// <summary>
/// 递归绑定子节点
/// </summary>
/// <param name="dv"></param>
/// <param name="node"></param>
private void AddReplies(DataView dv, TreeNode node)
{
dv.RowFilter = "treeNo='"+node.Value+"'";
foreach (DataRowView row in dv)
{
TreeNode replyNode = new TreeNode();
replyNode.Text = row["treeName"].ToString();
replyNode.Value = row["treeId"].ToString();
replyNode.Expanded = false;
node.ChildNodes.Add(replyNode);
AddReplies(dv, replyNode);
}
}
string blank = " ";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string body = ShowNodes(0, 0);
lblBody.Text = body;
}
}
private string ShowNodes(int pid, int level)
{
string body = "";
DataTable dt = da.Query("select * from DropDownList where ParentId=" + pid.ToString());
for (int i = 0; i < dt.Rows.Count; i++)
{
string space = "";
for (int j = 0; j < level; j++)
{
space += blank;
}
body += "<br>" + space + dt.Rows[i]["MyName"].ToString();
body += "<a style='font-size:12px' href='#' " +
"onclick='showDialog(\""+dt.Rows[i]["MyId"].ToString()+"\",\""+
dt.Rows[i]["MyName"].ToString()+"\")'>添加子节点</a>";
body += ShowNodes(Convert.ToInt32(dt.Rows[i]["MyId"].ToString()), level+1);
}
return body;
}
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Text;
namespace 企业人事管理系统
{
class Public_Fun
{
#region[公共变量]
DataSet DS;
DataTable DT;
SQL_Link Link = new SQL_Link();
bool Tree_Node_P = false;
#endregion
#region[函数] [TreeView递归函数]
软件开发网
#region [函数] [树型2级显示]
public void Fun_Tree(TreeView TREE,SqlConnection Link_Conn)
{
DS = Link.SQL_Select("select * from Basic_Bm", Link_Conn);
DT = DS.Tables[0];
if (Tree_Node_P == false)
{
foreach (DataRow DR in DT.Rows)
{
if (DR.ItemArray[1].ToString() == "0")
{
TreeNode TN = new TreeNode();
TN.Text = DR.ItemArray[0].ToString();
TREE.Nodes.Add(TN);
}
http://www.mscto.com
}
Tree_Node_P = true;
}
foreach (DataRow DR_2 in DT.Rows)
{
foreach (TreeNode TN_2 in TREE.Nodes)
软件开发网
{
if (DR_2.ItemArray[1].ToString() == TN_2.Text)
{
TreeNode TN_3 = new TreeNode();
TN_3.Text = DR_2.ItemArray[0].ToString();
TN_2.Nodes.Add(TN_3);
Fun_Tree_2(TN_3);
}
}
}
}
#endregion
#region [函数] [树型>3级递归]
public void Fun_Tree_2(TreeNode T_Name)
{
foreach (DataRow DR_2 in DT.Rows)
{
if (DR_2.ItemArray[1].ToString() == T_Name.Text)
{
TreeNode TN_3 = new TreeNode();
TN_3.Text = DR_2.ItemArray[0].ToString();
T_Name.Nodes.Add(TN_3);
Fun_Tree_2(TN_3);
}
}
}
#endregion
#endregion
}
}
//“公共”模块不参与权限控制
if ("角色控制" == drAry[nIndex][_dtblModule.strMduCommonColumn.ColumnName].ToString())
{
//如果此角色拥有该模块的功能数为0,则不显示此菜单
object obj = new perVwRolePowerTableAdapter().GetRolePowerCount(drAry[nIndex][_dtblModule.strModuleCodeColumn.ColumnName].ToString(), base.UserRoleCode);
if (0 == Convert.ToInt32(obj))
{
continue;
}
}
public partial class MenuTree : PageBase
{
private DataSetModule.perTbModuleDataTable _dtblModule;
new protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
InitTreeView();
}
}
/// <summary>
/// 初始树根节点
/// </summary>
private void InitTreeView()
{
//清除所有树节点
trvwCur.Nodes.Clear();
perTbModuleTableAdapter adp = new perTbModuleTableAdapter();
_dtblModule = adp.GetDisplayModule();
DataRow[] drAry = _dtblModule.Select(_dtblModule.strParentMduCodeColumn.ColumnName + "='-1'");
TreeViewNode trn = new TreeViewNode();
trn.Text = drAry[0][_dtblModule.strModuleNameColumn.ColumnName].ToString();
trn.Attributes.Add("MenuNo",drAry[0][_dtblModule.strModuleCodeColumn.ColumnName].ToString());
trn.Attributes.Add("UrlPath", drAry[0][_dtblModule.strPageFilePathColumn.ColumnName].ToString());
trn.Expanded = (drAry[0][_dtblModule.strMduExpandColumn.ColumnName].ToString() == "展开" ? true : false);
trvwCur.Nodes.Add(trn);
CreateTreeView(trn, drAry[0][_dtblModule.strModuleCodeColumn.ColumnName].ToString());
}
/// <summary>
/// 构建树
/// </summary>
/// <param name="trn">树节点</param>
/// <param name="strParentNodeCode">父节点编码</param>
private void CreateTreeView(TreeViewNode trn, string strParentNodeCode)
{
DataRow[] drAry = _dtblModule.Select(_dtblModule.strParentMduCodeColumn.ColumnName + "='" + strParentNodeCode + "'");
for (int nIndex = 0; nIndex < drAry.Length; nIndex++)
{
//“公共”模块不参与权限控制
if ("角色控制" == drAry[nIndex][_dtblModule.strMduCommonColumn.ColumnName].ToString())
{
//如果此角色拥有该模块的功能数为0,则不显示此菜单
object obj = new perVwRolePowerTableAdapter().GetRolePowerCount(drAry[nIndex][_dtblModule.strModuleCodeColumn.ColumnName].ToString(), base.UserRoleCode);
if (0 == Convert.ToInt32(obj))
{
continue;
}
}
TreeViewNode trnChild = new TreeViewNode();
trnChild.Text = drAry[nIndex][_dtblModule.strModuleNameColumn.ColumnName].ToString();
trnChild.Attributes.Add("MenuNo", drAry[nIndex][_dtblModule.strModuleCodeColumn.ColumnName].ToString());
trnChild.Attributes.Add("UrlPath", drAry[nIndex][_dtblModule.strPageFilePathColumn.ColumnName].ToString());
trnChild.Expanded = (drAry[nIndex][_dtblModule.strMduExpandColumn.ColumnName].ToString() == "展开" ? true : false);
trn.Nodes.Add(trnChild);
CreateTreeView(trnChild, drAry[nIndex][_dtblModule.strModuleCodeColumn.ColumnName].ToString());
}
}
}
/// <summary>
/// 初始树根节点
/// </summary>
private void InitTreeView()
{
//清除所有树节点
trvwCur.Nodes.Clear();
perTbModuleTableAdapter adp = new perTbModuleTableAdapter();
_dtblModule = adp.GetDisplayModule();
DataRow[] drAry = _dtblModule.Select(_dtblModule.strParentMduCodeColumn.ColumnName + "='-1'");
TreeViewNode trn = new TreeViewNode();
trn.Text = drAry[0][_dtblModule.strModuleNameColumn.ColumnName].ToString();
trn.Attributes.Add("MenuNo",drAry[0][_dtblModule.strModuleCodeColumn.ColumnName].ToString());
trn.Attributes.Add("UrlPath", drAry[0][_dtblModule.strPageFilePathColumn.ColumnName].ToString());
trn.Expanded = (drAry[0][_dtblModule.strMduExpandColumn.ColumnName].ToString() == "展开" ? true : false);
trvwCur.Nodes.Add(trn);
CreateTreeView(trn, drAry[0][_dtblModule.strModuleCodeColumn.ColumnName].ToString());
}
/// <summary>
/// 构建树
/// </summary>
/// <param name="trn">树节点</param>
/// <param name="strParentNodeCode">父节点编码</param>
private void CreateTreeView(TreeViewNode trn, string strParentNodeCode)
{
DataRow[] drAry = _dtblModule.Select(_dtblModule.strParentMduCodeColumn.ColumnName + "='" + strParentNodeCode + "'");
for (int nIndex = 0; nIndex < drAry.Length; nIndex++)
{
//“公共”模块不参与权限控制
if ("角色控制" == drAry[nIndex][_dtblModule.strMduCommonColumn.ColumnName].ToString())
{
//如果此角色拥有该模块的功能数为0,则不显示此菜单
object obj = new perVwRolePowerTableAdapter().GetRolePowerCount(drAry[nIndex][_dtblModule.strModuleCodeColumn.ColumnName].ToString(), base.UserRoleCode);
if (0 == Convert.ToInt32(obj))
{
continue;
}
}
TreeViewNode trnChild = new TreeViewNode();
trnChild.Text = drAry[nIndex][_dtblModule.strModuleNameColumn.ColumnName].ToString();
trnChild.Attributes.Add("MenuNo", drAry[nIndex][_dtblModule.strModuleCodeColumn.ColumnName].ToString());
trnChild.Attributes.Add("UrlPath", drAry[nIndex][_dtblModule.strPageFilePathColumn.ColumnName].ToString());
trnChild.Expanded = (drAry[nIndex][_dtblModule.strMduExpandColumn.ColumnName].ToString() == "展开" ? true : false);
trn.Nodes.Add(trnChild);
CreateTreeView(trnChild, drAry[nIndex][_dtblModule.strModuleCodeColumn.ColumnName].ToString());
}
}