DAL:
public class TblMenuService
{
//根据节点得到资源信息
public static List<TblMenu> GetMenuByNode(int MenuNode)
{
List<TblMenu> list = new List<TblMenu>();
string sql = "select * from [Tbl_Menu] where intMenuNode=@MenuNode";
using (SqlDataReader reader = DBHELP.GetReader(sql, new SqlParameter[] { new SqlParameter("@MenuNode", MenuNode) }))
{
while (reader.Read())
{
TblMenu menu = new TblMenu();
menu.IntMenuID = (int)reader["intMenuID"];
menu.IntMenuNode = (int)reader["intMenuNode"];
menu.VchMenuName = reader["vchMenuName"].ToString();
list.Add(menu);
}
}
return list;
}
}
--------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
LoadTree();
}
//加载树
public void LoadTree()
{
List<TblMenu> list =TblMenuManager.GetMenuByNode(0);//加载所有父节点
foreach (TblMenu item in list)
{
TreeNode tree = new TreeNode(item.VchMenuName);
showView(tree, item.IntMenuID);
tv_menu.Nodes.Add(tree);
}
}
/// <summary>
/// 递归调用加载子节点
/// </summary>
/// <param name="node">节点</param>
/// <param name="Nodes">父级菜单ID</param>
public void showView(TreeNode node, int menuID)
{
List<TblMenu> menuList = TblMenuManager.GetMenuByNode(menuID);
foreach (TblMenu var in menuList)
{
TreeNode treeNode = new TreeNode(var.VchMenuName);
node.ChildNodes.Add(treeNode);
treeNode.Value = var.IntMenuID.ToString();//记录子节点ID
showView(treeNode, var.IntMenuID);
}
}