菜单表结构
代码
namespace HongKongProject.Controls
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
/// <summary>
/// TreeMenu 的摘要说明。
/// </summary>
public class TreeMenu : System.Web.UI.UserControl
{
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
if(Request["ParentID"] != null)
this.CreateTree(this.TreeView1.Nodes,decimal.Parse(Request["ParentID"].ToString()));
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void CreateTree(Microsoft.Web.UI.WebControls.TreeNodeCollection tnc , decimal ParentID)
{
string pOrderType = "";
if(ParentID == 302)
pOrderType = "price";
else if(ParentID == 402)
pOrderType = "req";
else
pOrderType = "order";
string Num = "";
//创建子节点
HongKong.Sys.QueryByOracle query1 = new HongKong.Sys.QueryByOracle();
query1.TableName = "pb_menu";
HFSoft.BLL.FilterByField filter1 = new HFSoft.BLL.FilterByField("b_m_menu_id",ParentID);
HFSoft.BLL.FilterCompareField filter2 = new HFSoft.BLL.FilterCompareField("menu_jb",">=",2);
HFSoft.BLL.FilterByField filter3 = new HFSoft.BLL.FilterByField("MENU_LX","1");
query1.OrderBy = " menu_xh asc ";
HFSoft.DAL.FilterFactory fac = new HFSoft.DAL.FilterFactory();
fac.AddfilterByAnd(filter1,filter2,filter3);
query1.Filter = fac;
HFSoft.BLL.BLLExecute.SingleOjb.ExecBusiness(query1);
for(int i=0;i < query1.Items.Tables[0].Rows.Count;i++)
{
Microsoft.Web.UI.WebControls.TreeNode tn1 = new Microsoft.Web.UI.WebControls.TreeNode();
tn1.ID = query1.Items.Tables[0].Rows[i]["MENU_ID"].ToString();
if(query1.Items.Tables[0].Rows[i]["NUM_FLAG"].ToString() == "1")//需要绑定待处理数
{
HongKong.OrderBLL.QueryTaskInfo getTaskNum = new HongKong.OrderBLL.QueryTaskInfo();
getTaskNum.OrderType = pOrderType;
getTaskNum.LX = "2";
getTaskNum.Type="2";
getTaskNum.StageID = query1.Items.Tables[0].Rows[i]["STAGE_ID"].ToString();
getTaskNum.UserID = WebUnit.AppGlobal.Builder.LoginUser.STAFF_ID;
getTaskNum.OrgID = WebUnit.AppGlobal.Builder.LoginUser.ORG_ID;
HFSoft.BLL.BLLExecute.SingleOjb.ExecBusiness(getTaskNum);
Num = getTaskNum.Result;
tn1.Text = query1.Items.Tables[0].Rows[i]["MENU_NAME"].ToString()+"("+Num+")";
}
else
tn1.Text = query1.Items.Tables[0].Rows[i]["MENU_NAME"].ToString();
tn1.Expanded = true;
if(query1.Items.Tables[0].Rows[i]["menu_address"].ToString()!="")
{
//加载链接地址
string strURL=WebUnit.AppGlobal.Builder.WebBoot +query1.Items.Tables[0].Rows[i]["menu_address"].ToString();
tn1.Target="frameMiddle";
tn1.NavigateUrl=strURL;
}
tnc.Add(tn1);
this.CreateTree(tnc[tnc.Count-1].Nodes,decimal.Parse(tn1.ID));
//选定菜单
string m_menu_id=query1.Items.Tables[0].Rows[i]["menu_id"].ToString();//菜单ID
if(m_menu_id==Request["selectID"] && Request["selectID"] != "" && Request["selectID"] != null )
{
this.TreeView1.SelectedNodeIndex = tnc[tnc.Count-1].GetNodeIndex();
this.TreeView1.SelectedStyle.Add("color","red");
this.TreeView1.SelectedStyle.Add("background-color","#DDE9FC");
}
}
}
}
}