#region 根据用户权限将菜单挂TreeView
/// <summary>
/// 初始化菜单的根节点,并调用递归函数,生成菜单树
/// </summary>
/// <param name= "strUserid "> 传入登录的用户ID </param>
/// <param name= "strFrame "> 点击菜单时所指向的网页的strFrame </param>
/// <param name= "treMenu "> 用于显示菜单的treeview </param>
private void InittreMenu(string strUserid, string strFrame, TreeView treMenu)
{
DataSet dsMenu = new DataSet();
string strSql = "select * from tbMenu where id = '10 ' ";
dsMenu = GetDataSet.SelectSql(strSql, "MenuTable "); // 获得树的内存表
treMenu.Nodes.Clear();// 清空树
TreeNode tndRoot=new TreeNode();
tndRoot.Text=dsMenu.Tables[0].Rows[0][ "fcaption "].ToString(); // 给节点绑定显示值
tndRoot.NodeData=dsMenu.Tables[0].Rows[0][ "id "].ToString(); // 给节点绑定key值
tndRoot.Expanded=true; // 默认根结点为展开
tndRoot.Target = strFrame;
if ( dsMenu.Tables[0].Rows[0][ "fparameter "].ToString() == " ")
{
tndRoot.NavigateUrl = dsMenu.Tables[0].Rows[0][ "furl "].ToString();
}
else
{
tndRoot.NavigateUrl = dsMenu.Tables[0].Rows[0][ "furl "].ToString() + "? "+PageParams(dsMenu.Tables[0].Rows[0][ "fparameter "].ToString(),dsMenu.Tables[0].Rows[0][ "fvalue "].ToString());
}
treMenu.Nodes.Add(tndRoot);
string strParentid=dsMenu.Tables[0].Rows[0][ "id "].ToString(); // 他子节点的strParentid字段值
CreateChildNode(strUserid,strFrame,strParentid,tndRoot);// 加入所有根结点以下的结点
}
/// <summary>
/// 通过递归生成菜单树
/// </summary>
/// <param name= "strUserid "> 传入登录的用户ID </param>
/// <param name= "strFrame "> 点击菜单时所指向的页面的strFrame </param>
/// <param name= "strParentid "> 上一级菜单的结点ID </param>
/// <param name= "parentnode "> 上一级菜单结点 </param>
private void CreateChildNode(string strUserid,string strFrame,string strParentid,TreeNode parentnode)
{
DataSet dsMenus = new DataSet();// 选出所有子节点
string strSql = "select * from tbMenu where id in (select Menuid from tbUsersMenu where Userid = " + " ' "+strUserid + " ' "+ ") and fParentid = "+ " ' "+strParentid+ " ' ";
//遍历所有子节点
dsMenus = GetDataSet.SelectSql(strSql, "MenusTable ");
foreach( DataRow r in dsMenus.Tables[0].Rows )
{
TreeNode tndChild = new TreeNode();
tndChild.Text = r[ "fcaption "].ToString();
tndChild.NodeData = r[ "id "].ToString();
parentnode.Nodes.Add(tndChild);
tndChild.Expanded=false;
tndChild.Target = strFrame;
if ( r[ "fparameter "].ToString() == " ")
{
tndChild.NavigateUrl = r[ "furl "].ToString();
}
else
{
tndChild.NavigateUrl = r[ "furl "].ToString() + "? "+PageParams(r[ "fparameter "].ToString(),r[ "fvalue "].ToString());
}
strParentid=r[ "id "].ToString();
CreateChildNode(strUserid,strFrame,strParentid,tndChild);//递归下一级节点
}
}
#endregion
/// <summary>
/// 初始化菜单的根节点,并调用递归函数,生成菜单树
/// </summary>
/// <param name= "strUserid "> 传入登录的用户ID </param>
/// <param name= "strFrame "> 点击菜单时所指向的网页的strFrame </param>
/// <param name= "treMenu "> 用于显示菜单的treeview </param>
private void InittreMenu(string strUserid, string strFrame, TreeView treMenu)
{
DataSet dsMenu = new DataSet();
string strSql = "select * from tbMenu where id = '10 ' ";
dsMenu = GetDataSet.SelectSql(strSql, "MenuTable "); // 获得树的内存表
treMenu.Nodes.Clear();// 清空树
TreeNode tndRoot=new TreeNode();
tndRoot.Text=dsMenu.Tables[0].Rows[0][ "fcaption "].ToString(); // 给节点绑定显示值
tndRoot.NodeData=dsMenu.Tables[0].Rows[0][ "id "].ToString(); // 给节点绑定key值
tndRoot.Expanded=true; // 默认根结点为展开
tndRoot.Target = strFrame;
if ( dsMenu.Tables[0].Rows[0][ "fparameter "].ToString() == " ")
{
tndRoot.NavigateUrl = dsMenu.Tables[0].Rows[0][ "furl "].ToString();
}
else
{
tndRoot.NavigateUrl = dsMenu.Tables[0].Rows[0][ "furl "].ToString() + "? "+PageParams(dsMenu.Tables[0].Rows[0][ "fparameter "].ToString(),dsMenu.Tables[0].Rows[0][ "fvalue "].ToString());
}
treMenu.Nodes.Add(tndRoot);
string strParentid=dsMenu.Tables[0].Rows[0][ "id "].ToString(); // 他子节点的strParentid字段值
CreateChildNode(strUserid,strFrame,strParentid,tndRoot);// 加入所有根结点以下的结点
}
/// <summary>
/// 通过递归生成菜单树
/// </summary>
/// <param name= "strUserid "> 传入登录的用户ID </param>
/// <param name= "strFrame "> 点击菜单时所指向的页面的strFrame </param>
/// <param name= "strParentid "> 上一级菜单的结点ID </param>
/// <param name= "parentnode "> 上一级菜单结点 </param>
private void CreateChildNode(string strUserid,string strFrame,string strParentid,TreeNode parentnode)
{
DataSet dsMenus = new DataSet();// 选出所有子节点
string strSql = "select * from tbMenu where id in (select Menuid from tbUsersMenu where Userid = " + " ' "+strUserid + " ' "+ ") and fParentid = "+ " ' "+strParentid+ " ' ";
//遍历所有子节点
dsMenus = GetDataSet.SelectSql(strSql, "MenusTable ");
foreach( DataRow r in dsMenus.Tables[0].Rows )
{
TreeNode tndChild = new TreeNode();
tndChild.Text = r[ "fcaption "].ToString();
tndChild.NodeData = r[ "id "].ToString();
parentnode.Nodes.Add(tndChild);
tndChild.Expanded=false;
tndChild.Target = strFrame;
if ( r[ "fparameter "].ToString() == " ")
{
tndChild.NavigateUrl = r[ "furl "].ToString();
}
else
{
tndChild.NavigateUrl = r[ "furl "].ToString() + "? "+PageParams(r[ "fparameter "].ToString(),r[ "fvalue "].ToString());
}
strParentid=r[ "id "].ToString();
CreateChildNode(strUserid,strFrame,strParentid,tndChild);//递归下一级节点
}
}
#endregion