/// <summary>
/// 建立菜单功能树
/// </summary>
/// <param name="myDv">包含菜单表所有记录的视图</param>
/// <param name="TNC">树节点的Collection,传入myTv.Nodes就行了</param>
/// <param name="classParentID">上级菜单ID</param>
public static void CreateMenuTree(DataView myDv, TreeNodeCollection TNC,string classParentID)
{
try
{
DataView dataView = new DataView();
dataView = myDv.Table.Copy().DefaultView ;
dataView.RowFilter = "ownerid = " + classParentID + "";
foreach(DataRowView drv in dataView)
{
if(UserRight.GetIsShow(drv["MenuValue"].ToString(),drv["Right"].ToString(),drv["MenuId"].ToString()))
{
TreeNode tn = new TreeNode();
tn.ID = drv["menuID"].ToString();
tn.Text = "<span οnmοusemοve=javascript:title='" +
drv["menuName"].ToString().Trim() + "'>" + drv["menuName"].ToString().Trim() + "</span>";
tn.ImageUrl = drv["imgurl"].ToString();
tn.NavigateUrl = drv["menuhref"].ToString()==""?"":drv["menuhref"].ToString() + "?menuid=" + drv["menuid"].ToString();
tn.Target = "mainFrame";
TNC.Add(tn);
CreateMenuTree(myDv,tn.Nodes,tn.ID);
}
}
}
catch(Exception ex)
{
Hansheen.EOffice_Ora.Components.Error.Log("获取树错误:" + ex.Message);
}
}
调用实例:
protected Microsoft.Web.UI.WebControls.TreeView tvMenu;
。。。。。
DataView myDv = MenuData.GetMenuData();
MenuData.CreateMenuTree(myDv,tvMenu.Nodes,"0");
private void getAllCheckedNode( Microsoft.Web.UI.WebControls.TreeNodeCollection tnc)
{
node = Microsoft.Web.UI.WebControls.TreeNode
foreach(Microsoft.Web.UI.WebControls.TreeNode node in tnc)
{
if (node.Nodes.Count != 0 )
getAllCheckedNode(node.Nodes);
if (node.Checked )
insertIntoDs(node.Text, node.NodeData);
}
}