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);
   }
  }

转载于:https://www.cnblogs.com/Bluer/archive/2006/12/26/604215.html

NickLee 多層菜單相关推荐

  1. php 數組重組,php數組的重組及多級下拉菜單

    [算法大作戰]無限級分類與多級下拉菜單實用 //測試數據 $ar = array( array('id'=>1,'pid'=>0), array('id'=>2,'pid'=> ...

  2. java jmenuitem重新渲染_的Java的JMenuItem添加邊框的第二菜單項

    我嘗試添加一些菜單,不知道以後我怎麼可以在第二菜單項的Java的JMenuItem添加邊框的第二菜單項 就這樣 後添加一個邊框,這裏是我代碼 jmb = new JMenuBar(); jmb.set ...

  3. flask html下拉列表,如何使用Flask和HTML從python列表創建下拉菜單

    我試圖使用來自python腳本的信息在HTML中創建下拉菜單.到目前爲止,我已經完成了它的工作,但是,html下拉菜單將列表中的所有4個值顯示爲4個選項.如何使用Flask和HTML從python列表 ...

  4. FMDB與SQLite 數據庫應用示範:打做一隻簡單的電影資料庫 App

    原文:http://www.appcoda.com/fmdb-sqlite-database/ 作者:GABRIEL THEODOROPOULOS 譯者:kmyhy 通常在 App 中使用數據庫并處理 ...

  5. android 全景播放器,Android VR Player(全景視頻播放器) [5]:簡單的歡迎界面

    Android VR Player(全景視頻播放器) [5]:簡單的歡迎界面 歡迎界面 在繼續下一部分,即視頻列表實現的介紹前,分享一下簡單的歡迎界面的實現.一來是可以整合一下前面說的側滑菜單和底部導 ...

  6. Server2008 RMS測試

    Server2008 RMS 測試<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&qu ...

  7. 【WIN10】程序內文件讀取與保存

    DEMO下載:http://yunpan.cn/cFHIZNmAy4ZtH  访问密码 cf79 1.讀取與保存文件 Assets一般被認為是保存用戶文件數據的地方.同時,微軟還支持用戶自己創建文件夾 ...

  8. 姍姍遲來的iPhone文檔處理功能

    以下這些文字是我在蘋果iPhone上利用一個功能齊全的文字處理軟件打出來的.這是一個第三方應用軟件﹐你可以創建Word或Excel文檔﹐進行編輯.排版﹐然後發送到個人電腦或Mac電腦上後在電腦的Wor ...

  9. Android小項目之---吃飯選哪?--》選擇對話框(附源碼)

    還記得早先我們做的記算器的例子嗎?當中的驗證判斷用到了對話框,今天我們來做一個不一樣的對話框,要做的這個小例子是一個可供選擇效果的對話框 即層層迭迭的Alert Dialog:界面方面我們擺放一個Bu ...

最新文章

  1. 做百度AI工程师,还要会“相牛”?
  2. handler原子锁_深入Linux内核架构——锁与进程间通信
  3. C++将数字A转换为数字B所需的翻转次数算法实现(附完整源码)
  4. Java简单内存解析
  5. USB-C 端口在您的 Mac 上无法使用如何解决?
  6. 支付宝架构师的总结:为什么他们能抗住万亿级流量的高并发?
  7. 向量函数具有固定模的充要条件
  8. 读[SBO高层大变动]一文有感
  9. mongodb linux用户验证登陆,转载:linux下mongodb的用户查询_【Linux】MongoDB创建数据库(开启用户认证)...
  10. VC6.0下载和安装教程
  11. eclipse:设置maven本地仓库
  12. napi娃娃_第二十九章 干妈
  13. 关键字查询 import keyword
  14. 15个国外便宜主机介绍
  15. Axure RP 9.0 Enterprise 原型设计
  16. 通过多个点,计算出中心点
  17. 个人微信公众号申请流程
  18. mac node repl_如何使用Node.js REPL
  19. Tesla_T4加速卡详细参数
  20. Using的三种使用方法

热门文章

  1. c语言编俄罗斯方块有注释,C语言学习1年-俄罗斯方块(无注释)
  2. java string字符操作_Java对String类型字符串的各种操作姿势
  3. c++ new 数组_用Java实现JVM第八章《数组和字符串》
  4. go 写文件_如何在 Ubuntu 20.04 上安装 Go
  5. Linux 底层原理 —— epoll 与多路复用
  6. 管理节点连接不上sql节点_质量成本管理:成本控制、成本分析、费用使用流程与节点说明...
  7. 9008刷机模式写入超时刷机帮_刷机时没有成功,然后变成黑砖,usb接口直接变成未知设备~希望大神救助!...
  8. python3异步协程爬虫,simpyder
  9. java读取rvt文件数据_Revit二次开发之隐藏API 独立进程读取rvt文件
  10. php判断有没有登录,请问thinkphp 怎么在每个方法里面判断是否登录?