zoukankan      html  css  js  c++  java
  • NickLee 多層菜單

    void InitMenu(){
       //初始化菜單
       MenuItem menuFirst;
       DataSet dsPermit;
       UserInfo ui ;

       DataSet dsF=func.GetDataTable("select * from cqsSystemTree where F_Parent='000' and isValid=1 order by showSort");
       foreach (DataRow myrow in dsF.Tables[0].Rows){
        //如果沒有主菜單下的任何一個子菜單權限則不顯示此菜單
        if (Session["uID"] != null){
         ui = new UserInfo(Request.Cookies["LoginID"].Value);
         if (ui.Role == "C"){
          dsPermit = func.GetDataTable("select * from cqsUserPermit where uid="+ Session["uID"] +" and F_SysCode like '"+ myrow["F_SysCode"].ToString() +"%' ");
          if (dsPermit.Tables[0].Rows.Count ==0){
           continue;
          }
         }
        }
        menuFirst=new MenuItem();
        menuFirst.Text=myrow["F_SysNameEN"].ToString();

        DataSet dsLen=func.GetDataTable("select isnull(max(len(f_sysnamech)),0) as ls from cqsSystemTree where f_parent='"+myrow["F_SysCode"].ToString()+"' and isValid=1");
        int len=Convert.ToInt32(dsLen.Tables[0].Rows[0]["ls"].ToString());

        //如果沒有主菜單下的任何一個子菜單權限則不顯示此菜單,只針對 C 用戶
        if (Session["uID"] != null){
         ui = new UserInfo(Request.Cookies["LoginID"].Value);
         MenuItem menuSecond;
         MenuItem menuThird;
         DataSet dsS=func.GetDataTable("select * from cqsSystemTree where F_Parent='"+ myrow["F_SysCode"].ToString() +"' and isValid=1 order by showSort");
         foreach (DataRow myrow2 in dsS.Tables[0].Rows){
          menuSecond=new MenuItem();
          menuSecond.Text=myrow2["F_SysNameEN"].ToString();

          //如果沒有主菜單下的任何一個子菜單權限則不顯示此菜單,只針對 C 用戶
          if (ui.Role == "C") {
           dsPermit = func.GetDataTable("select * from cqsUserPermit where uid="+ Session["uID"] +" and F_SysCode like '"+ myrow2["F_SysCode"].ToString() +"%' ");
           if (dsPermit.Tables[0].Rows.Count ==0){
            continue;
           }
          }

          DataSet dsT=func.GetDataTable("select * from cqsSystemTree where F_Parent='"+ myrow2["F_SysCode"].ToString() +"' and isValid=1 order by showSort");
          if (dsT.Tables[0].Rows.Count>0){
           menuSecond.Text +="&nbsp;&nbsp;" + func.ReplicateChar("&nbsp;",len-menuSecond.Text.Length) + "<img src ='../Images/arrow1.gif' align ='right' >";
           menuSecond.Style.Add("backgroup","");
           foreach (DataRow myrow3 in dsT.Tables[0].Rows) {
            //如果沒有主菜單下的任何一個子菜單權限則不顯示此菜單,只針對 C 用戶
            if (ui.Role == "C") {
             dsPermit = func.GetDataTable("select * from cqsUserPermit where uid="+ Session["uID"] +" and F_SysCode like '"+ myrow3["F_SysCode"].ToString() +"%' ");
             if (dsPermit.Tables[0].Rows.Count ==0){
              continue;
             }
            }

            menuThird=new MenuItem();
            menuThird.Text=myrow3["F_SysNameEN"].ToString();
            if (myrow3["F_URL"].ToString()=="") {
             menuThird.NavigateUrl ="../ErrorMsg.aspx?MsgID=M0002"; 
            }
            else {
             menuThird.NavigateUrl=myrow3["F_URL"].ToString() + "&F_SysCode="+ myrow3["f_sysCode"].ToString();
            }
            menuThird.Target="right";
            menuSecond.Items.Add(menuThird);
           }
          } else {
           if (myrow2["F_Url"].ToString()=="") {
            menuSecond.NavigateUrl ="../ErrorMsg.aspx?MsgID=M0002";
           }
           else {
            menuSecond.NavigateUrl=myrow2["F_Url"].ToString() + "&F_SysCode="+ myrow2["f_sysCode"].ToString();
           }
          
           menuSecond.Target="right";
          }
          menuFirst.Items.Add(menuSecond);
         }
        }
        Menu1.Items.Add(menuFirst);
       }
      }

  • 相关阅读:
    mongodb数据库迁移
    idea激活
    常见加密方式
    restful请求风格使用详解
    Jreble破解使用
    websocket入门与分布式websocket
    分布式Session的解决方案
    mysql基础知识与优化总结
    分布式事务详解
    多线程总结与使用
  • 原文地址:https://www.cnblogs.com/Bluer/p/604215.html
Copyright © 2011-2022 走看看