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 +=" " + func.ReplicateChar(" ",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 多層菜單相关推荐
- php 數組重組,php數組的重組及多級下拉菜單
[算法大作戰]無限級分類與多級下拉菜單實用 //測試數據 $ar = array( array('id'=>1,'pid'=>0), array('id'=>2,'pid'=> ...
- java jmenuitem重新渲染_的Java的JMenuItem添加邊框的第二菜單項
我嘗試添加一些菜單,不知道以後我怎麼可以在第二菜單項的Java的JMenuItem添加邊框的第二菜單項 就這樣 後添加一個邊框,這裏是我代碼 jmb = new JMenuBar(); jmb.set ...
- flask html下拉列表,如何使用Flask和HTML從python列表創建下拉菜單
我試圖使用來自python腳本的信息在HTML中創建下拉菜單.到目前爲止,我已經完成了它的工作,但是,html下拉菜單將列表中的所有4個值顯示爲4個選項.如何使用Flask和HTML從python列表 ...
- FMDB與SQLite 數據庫應用示範:打做一隻簡單的電影資料庫 App
原文:http://www.appcoda.com/fmdb-sqlite-database/ 作者:GABRIEL THEODOROPOULOS 譯者:kmyhy 通常在 App 中使用數據庫并處理 ...
- android 全景播放器,Android VR Player(全景視頻播放器) [5]:簡單的歡迎界面
Android VR Player(全景視頻播放器) [5]:簡單的歡迎界面 歡迎界面 在繼續下一部分,即視頻列表實現的介紹前,分享一下簡單的歡迎界面的實現.一來是可以整合一下前面說的側滑菜單和底部導 ...
- Server2008 RMS測試
Server2008 RMS 測試<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&qu ...
- 【WIN10】程序內文件讀取與保存
DEMO下載:http://yunpan.cn/cFHIZNmAy4ZtH 访问密码 cf79 1.讀取與保存文件 Assets一般被認為是保存用戶文件數據的地方.同時,微軟還支持用戶自己創建文件夾 ...
- 姍姍遲來的iPhone文檔處理功能
以下這些文字是我在蘋果iPhone上利用一個功能齊全的文字處理軟件打出來的.這是一個第三方應用軟件﹐你可以創建Word或Excel文檔﹐進行編輯.排版﹐然後發送到個人電腦或Mac電腦上後在電腦的Wor ...
- Android小項目之---吃飯選哪?--》選擇對話框(附源碼)
還記得早先我們做的記算器的例子嗎?當中的驗證判斷用到了對話框,今天我們來做一個不一樣的對話框,要做的這個小例子是一個可供選擇效果的對話框 即層層迭迭的Alert Dialog:界面方面我們擺放一個Bu ...
最新文章
- 做百度AI工程师,还要会“相牛”?
- handler原子锁_深入Linux内核架构——锁与进程间通信
- C++将数字A转换为数字B所需的翻转次数算法实现(附完整源码)
- Java简单内存解析
- USB-C 端口在您的 Mac 上无法使用如何解决?
- 支付宝架构师的总结:为什么他们能抗住万亿级流量的高并发?
- 向量函数具有固定模的充要条件
- 读[SBO高层大变动]一文有感
- mongodb linux用户验证登陆,转载:linux下mongodb的用户查询_【Linux】MongoDB创建数据库(开启用户认证)...
- VC6.0下载和安装教程
- eclipse:设置maven本地仓库
- napi娃娃_第二十九章 干妈
- 关键字查询 import keyword
- 15个国外便宜主机介绍
- Axure RP 9.0 Enterprise 原型设计
- 通过多个点,计算出中心点
- 个人微信公众号申请流程
- mac node repl_如何使用Node.js REPL
- Tesla_T4加速卡详细参数
- Using的三种使用方法
热门文章
- c语言编俄罗斯方块有注释,C语言学习1年-俄罗斯方块(无注释)
- java string字符操作_Java对String类型字符串的各种操作姿势
- c++ new 数组_用Java实现JVM第八章《数组和字符串》
- go 写文件_如何在 Ubuntu 20.04 上安装 Go
- Linux 底层原理 —— epoll 与多路复用
- 管理节点连接不上sql节点_质量成本管理:成本控制、成本分析、费用使用流程与节点说明...
- 9008刷机模式写入超时刷机帮_刷机时没有成功,然后变成黑砖,usb接口直接变成未知设备~希望大神救助!...
- python3异步协程爬虫,simpyder
- java读取rvt文件数据_Revit二次开发之隐藏API 独立进程读取rvt文件
- php判断有没有登录,请问thinkphp 怎么在每个方法里面判断是否登录?