Visual Studio 2005中web.sitemap 中扩展自定义属性的一些应用范例
通过扩展一些自定义属性可以实现(此方法已经在E8.Net 2.0 工作流应用架构中实现)
sitmap 范例:
<siteMapNode title="我的桌面" img="skins/2004/images/icon/desktop.gif" menuIndex="1" url ="~\1.aspx">
<siteMapNode title="待办事项" url="~\Forms\frmContent.aspx" description="待办事项" targeturl="" />
<siteMapNode title="我登记事件" url="~\Forms\frmWaittingContent.aspx?TypeContent=MyReg" description="我登记事件"/>
<siteMapNode title="出差授权" url="~\Forms\FrmAgentSet.aspx" description="出差授权"/>
<siteMapNode title="计算器" url="~\Forms\Calculator.htm" description="计算器"/>
<siteMapNode title="万年历" url="~\Forms\wnl.htm" description="万年历"/>
<siteMapNode title="修改密码" url="~\Forms\FrmModuser.aspx" description="修改密码"/>
</siteMapNode>
<siteMapNode title="客户服务" img ="skins/2004/images/icon/sContacts.gif" menuIndex="2" url ="~\2.aspx">
<siteMapNode title="客户服务登记" resourceKey="1824" url="~\Forms\form_all_flowmodel.aspx?appid=1026" description="客户服务登记"/>
<siteMapNode title="客户服务跟踪" resourceKey="1811" url="~\AppForms\CST_Issue_List.aspx" description="客户服务跟踪"/>
<siteMapNode title="抱怨投诉登记" resourceKey="1825" url="~\Forms\form_all_flowmodel.aspx?AppID=320" description="抱怨投诉登记"/>
<siteMapNode title="抱怨投诉查询" resourceKey="207" url="~\AppForms\frm_BYTS_Query.aspx" description="抱怨投诉查询"/>
<siteMapNode title="材料管理" resourceKey="1845" url="~\AppForms\frmMaterial.aspx" description="材料管理"/>
</siteMapNode>
..
</siteMapNode>
</siteMap>
可以看到 这个sitmap中 有 target diseable resourcekey ...等扩展属性 来实现菜单权限控制 及控制方式等
实现代码:
{
//节点
SiteMapNode smn = (SiteMapNode)e.Node.DataItem;
string strOpID = smn.ResourceKey;
Epower.ITSM.SqlDAL.UIMethod ui = new Epower.ITSM.SqlDAL.UIMethod();
string strTarget = smn["target"];
if (strTarget != "")
{
e.Node.Target = strTarget;
}
if (strOpID != null && strOpID.Length > 0)
ui.CheckNodeRight(strOpID, e.Node, (Hashtable)Session["UserAllRights"],TreeView1);
}
/**//// <summary>
/// 如果为false,表示设置为没有权限的菜单移除
/// </summary>
/// <param name="strID"></param>
/// <param name="item"></param>
public void CheckNodeRight(string strID, TreeNode item, Hashtable htAllRights, TreeView TreeView1)
{
long OperatorID = 0;
try
{
OperatorID = long.Parse(strID);
}
catch { }
if (OperatorID == 0)
return;
RightEntity re = (RightEntity)htAllRights[OperatorID];
if (re == null)
return;
else
{
if (re.CanRead == false)
{
//移除菜单项
TreeNode pitem = item.Parent;
if (pitem != null)
{
pitem.ChildNodes.Remove(item);
}
else
{
TreeView1.Nodes.Remove(item);
}
}
}
}
依据同样的方法,可以扩展更多的自定义属性,达到对sitMap 非常丰富的控制和展示逻辑.
E8.Net 工作流 开源架构 提供了全部实现的源码, 2.0下所有应用系统菜单(OUTLOOK风格),实现来自 web.siteMap
欢迎访问更多精彩内容: http://***/productFlow.htm
转载于:https://www.cnblogs.com/cancanwyq/articles/947319.html
Visual Studio 2005中web.sitemap 中扩展自定义属性的一些应用范例相关推荐
- 通过Visual Studio 2005的项目模板来加速开发过程
page by Ameet Phadnis Feedback 简介: 记得在我第一次做项目的时候,我就在尝试找出一种方法来提高项目开始的效率(jump start my projects).在 ...
- 利用Visual Studio 2005的自动化测试工具来做数据导入
* reference link: http://www.bentan.cn/Blog/Lists/Posts/Post.aspx?ID=3 1 引言 1.1 研究目标 在我们 ...
- Microsoft Visual Studio 2005中使用水晶报表
Microsoft Visual Studio 2005中使用水晶报表 沈阳 王智 OICQ:16994162 http://wangzhihome.51.net/ 2006-4-11 如有转贴请注明 ...
- WSSv3 Technical Articles_使用Visual Studio 2005扩展创建Windows SharePoint Services 3.0 Web Part...
WSSv3 Technical Articles_使用Visual Studio 2005扩展创建Windows SharePoint Services 3.0 Web Part 摘要:学习使用Mic ...
- Visual Studio 2005 中的 命令窗口
"命令"窗口用于直接在 Visual Studio 集成开发环境 (IDE) 中执行命令或别名.可以执行菜单命令和不在任何菜单上显示的命令. 1 调用命令窗口: 若要显示" ...
- Visual Studio 2005中C++的变化
下一代visual studio版本(以前whidbey,现在是visual studio 2005)提供更加丰富的改进的库文件和没有很多幕后精简和加速的压力,它的大量配合的工具和新的功能将使开发者的 ...
- 在Visual Studio 2005中调试SQL Server 2005的存储过程
介绍 SQL Server 2000可以让我们在查询分析器中直接调试存储过程( 更多的信息请参看:用SQL Server 2000的查询分析器调试存储过程) 到了现在的SQL Server 2005, ...
- Visual Studio 2005 中的新增安全性功能
Visual Studio 2005 中的新增安全性功能 Visual Studio 2005 中的新增安全性功能 发布日期: 11/18/2005 | 更新日期: 11/18/2005 Brian ...
- 在Visual Studio 2005中安装Qt 4.3.2
1.正常安装Visual Studio 2005,只要安装了C++即可.注意:不是Express版本. 2.下载Qt源代码 Qt 4.3.2 Windows OpenSource版下载: http:/ ...
最新文章
- 【T07】不要低估tcp的性能
- Python入门100题 | 第015题
- Lost Numbers
- Rosenbrock函数到底什么用
- JavaScript中的arguments,callee,caller
- Python实现大自然数分解为最多4个平方数之和(1)
- 对象refresh的方法iadodc失败_3个必备cookie实用方法
- 【ACL2020】用于改进文本分类的特征投影
- AES算法,DES算法,RSA算法JAVA实现
- 软件测试面试必考的SQL语句
- java阅卷系统_基于jsp的考试阅卷系统-JavaEE实现考试阅卷系统 - java项目源码
- 【供应链架构day11】京东履约系统的演进之路
- ArcGIS根据矢量图层范围裁剪影像
- linux 硬盘品牌,CentOS如何查看硬盘品牌型号等具体信息
- Jointly Embedding Knowledge Graphs and Logical Rules
- 哈尔滨计算机管理,哈尔滨戴斯酒店计算机管理系统.doc
- pppd详解_PPPD
- oracle异地接管,群集的接管和故障恢复 - 
Oracle® ZFS Storage Appliance 管理指南,发行版 OS8.6.0...
- python 小说人物分析_Python文章相关性分析---金庸武侠小说分析
- Video Input with OpenCV and similarity measurement(使用opencv测量两个视频的相似度)
热门文章
- sudo apt-get update: 0% [正在等待报头]
- C# Task的用法
- 【BZOJ1085】【SCOI2005】骑士精神 [A*搜索]
- node.js+express,实现RESTful API
- 【Oracle 常用查询】oracle表空间使用率统计查询
- 使用Cbrgen和Setdest构造无线仿真环境
- 在.net开发中使用Log4Net组件
- Microsoft Enterprise Library 4.0 for Visual Studio 2008
- 用了CFileDialog后File 写文件不能写进去
- 算法------二叉树的层序遍历