菜单表结构
88.jpg

代码
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");
    }
   }
  }
 }
}

posted on 2008-05-09 17:47  Madream.F  阅读(219)  评论(0编辑  收藏  举报