ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )[转载]
TreeView 控件关键属性
ExpandDepth 声明TreeView控件展开的深度
Nodes TreeNodeCollection 类型的节点集合
SelectedNode 当前被选择的节点
ShowCheckBoxes 声明是否显示复选框
ShowExpandCollapse 声明展示/折叠状态
ShowLines 声明节点间是否以线连接
LevelStyles 指定每个层次的节点的样式
NodeStyle 指定节点的默认样式
RootNodeStyle 指定根节点的样式
LeafNodeStyle 指定子节点的样式
SelectedNodeStyle 指定选定节点的样式
HoverNodeStyle 指定当鼠标移在节点上方时的样式
ImageUrl properties 指定表示展开/折叠的图片的URL路径
TreeNode关键属性
ImageUrl 标明节点上所用图片的URL路径
NavigateUrl 当单击节点时所要导航到的URL路径
SelectAction 无导航节点被单击时所要执行的动作
Selected 标明当前节点是否被选择的节点
ShowCheckBox 标明当前节点是否显示复选框
Text 节点上的文字
TreeView 事件
SelectedNodeChanged 当选择的节点发生改变时所触发的事件
TreeNodeCollapsed 当分支被折叠时所触发的事件
TreeNodeExpanded 当分支被展开时所触发的事件
TreeNodeDataBound 当节点被绑定到数据源时所触发的事件
TreeNodePopulate* Fired when a PopulateOnDemand node needs content
* Only fired on server if EnableClientScript="false"
使用 SelectedNodeChanged事件
<Nodes>
</Nodes>
</asp:TreeView>
.
.
.
<script language="C#" runat="server">
void OnUpdate (Object sender, EventArgs e)
{
// Get the text of the selected node
string text = Tree.SelectedNode.Text;
}
</script>
按需装载节点
RunAt="server">
<Nodes>
<asp:TreeNode Text="Populate this node on demand"
PopulateOnDemand="true" RunAt="server" />
</Nodes>
</asp:TreeView>
.
.
.
<script language="C#" runat="server">
void OnPopulate (Object sender, TreeNodeEventArgs e)
{
// Called first time the populate-on-demand node is expanded
TreeNode node = new TreeNode ("This node added dynamically");
e.Node.ChildNodes.Add (node);
}
</script>
Menu 控件关键属性
ItemWrap Specifies whether menu item should wrap
Orientation 标明菜单是纵向排列还是横向排列
SelectedItem 标明当前选择的菜单项
StaticStyle properties 标明静态菜单的样式
DynamicStyle properties 标明动态菜单的样式
MenuItem 控件关键属性
NavigateUrl 当菜单项单击时所要导航的目标路径
Selected 标明当前菜单项是否已经被选中
Text 菜单项上的文字 (显示给最终用户)
ToolTip 当光标暂停或者移过菜单项时所显示的提示文本
Value 菜单项的实际值
Menu事件
<Items>
</Items>
</asp:Menu>
.
.
.
<script language="C#" runat="server">
void OnClick (Object sender, MenuEventArgs e)
{
// Get the text of the selected menu item
string text = e.Item.Text;
}
</script>
TreeView控件和 Site Maps 关系
<asp:TreeView DataSourceID="SiteMap" RunAt="server" />
Menus控件和 Site Maps 关系
<asp:Menu DataSourceID="SiteMap" RunAt="server" />
在配置文件中修改文件名
<siteMapNode> 属性
roles 指定当前项对哪些角色是可见的*
title 当前项的标题
url 当前项导航的目标路径
Security Trimming
<siteMapNode title="Home" description="" url="default.aspx">
<siteMapNode title="Announcements" url="Announcements.aspx"
description="Information for all employees" /> 任何人均可见
<siteMapNode title="Salaries" url="Salaries.aspx"
description="Salary data" roles="Managers,CEOs" /> 只有Manager
和CEO权限的可见
<siteMapNode>
</siteMap>
使 Security Trimming生效 SiteMapDataSource属性
SiteMapProvider 用来获得站点导航数据的Provider的名称
ShowStartingNode 指定显示为根节点的项
StartFromCurrentNode 指定开始节点是否是根节点(false)或者是当前节点(true)默认 = false
StartingNodeOffset 使用层次来指定开始节点 (default = 0)
StartingNodeUrl 使用URL来指定开始节点
隐藏Site Map根节点
RunAt="server" />
<asp:TreeView DataSourceID="SiteMap" RunAt="server" />
SiteMapPath控件关键属性
CurrentNodeTemplate 当前节点的HTML模板
NodeStyle 非当前节点的样式
NodeStyleTemplate 非当前节点的HTML模板
PathSeparator 分隔符所使用的文字 (默认 = ">")
PathSeparatorStyle 分隔符的样式
PathSeparatorTemplate 分隔符所使用的HTML模板
RootNode 属性用来鉴别根节点
CurrentNode 属性用来鉴别当前节点
使用 Site Map API
Label1.Text = SiteMap.CurrentNode.Title;
// Write the path to the current node to a Label control
SiteMapNode node = SiteMap.CurrentNode;
StringBuilder builder = new StringBuilder (node.Title);
while (node.ParentNode != null) {
node = node.ParentNode;
builder.Insert (0, " > ");
builder.Insert (0, node.Title);
}
Label1.Text = builder.ToString ();
补充:
通过在web.sitemap中进行设置,可以控制权限,这样就能仅通过一个XML文件,让具有不同权限的人看到不同的菜单。要设置权限只要在web.sitemap中的子节点加上一个roles属性,然后在web.config文件中将securityTrimmingEnabled设置为True就可以了。下面是例子。
<siteMapNode title="Home" description="" url="default.aspx">
<siteMapNode title="Announcements" url="Announcements.aspx"
description="Information for all employees" />
<siteMapNode title="Salaries" url="Salaries.aspx"
description="Salary data" roles="Managers" />
<siteMapNode>
</siteMap>
<system.web>
<siteMap>
<providers>
<remove name="AspNetXmlSiteMapProvider" />
<add name="AspNetXmlSiteMapProvider"
type="System.Web.XmlSiteMapProvider, System.Web, "
securityTrimmingEnabled="true"
siteMapFile="web.sitemap" />
</providers>
</siteMap>
</system.web>
</configuration>
<system.web>
<siteMap>
<providers>
<remove name="AspNetXmlSiteMapProvider" />
<add name="AspNetXmlSiteMapProvider"
type="System.Web.XmlSiteMapProvider, System.Web, "
securityTrimmingEnabled="true"
siteMapFile="web.sitemap" />
</providers>
</siteMap>
</system.web>
</configuration>
<system.web>
<siteMap>
<providers>
<remove name="AspNetXmlSiteMapProvider" />
<add name="AspNetXmlSiteMapProvider"
type="System.Web.XmlSiteMapProvider, System.Web, "
siteMapFile="Acme.sitemap" />
</providers>
</siteMap>
</system.web>
</configuration>
MenuItemDataBound 当菜单项被绑定到数据源时所触发的事件
使用 MenuItemClick事件
ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )[转载]相关推荐
- ASP.NET 2.0 本地化功能:本地化 Web 应用程序的新方法
适用于: Microsoft ASP.NET 2.0 Microsoft Visual Studio .NET Microsoft Visual Studio 2005 本地化 摘要:随着越来越多的公 ...
- ASP.NET 2.0 中动态添加 GridView 模板列
ASP.NET 2.0 中动态添加 GridView 模板列的例子 动态添加列,关键是实现 ITemplate.InstantiateIn 方法.下面是一个添加 GridView 模板列的例子. ...
- ASP.NET 2.0 中动态添加 GridView 模板列的...
framespacing="0" src="http://what.yesky.com/by/ztdh.htm" frameborder="0&quo ...
- 构建meteor应用程序_我构建了一个渐进式Web应用程序并将其发布在3个应用程序商店中。 这是我学到的。...
构建meteor应用程序 by JudahGabriel Himango 犹大(Gabriel Himango) 我构建了一个渐进式Web应用程序并将其发布在3个应用程序商店中. 这是我学到的. (I ...
- Nest的基本概念,以及如何使用Nest CLI来构建一个简单的Web应用程序
Nest是一个用于构建高效.可扩展的Node.js服务器端应用程序的框架.它是基于Express.js构建的,并且提供了多种新特性和抽象层,可以让开发者更加轻松地构建复杂的应用程序. 本文将介绍Nes ...
- ASP.NET AJAX1.0尝鲜试用:Web Service调用
系统环境:Windows Server 2003 + IIS6 开发环境:Visual Web Developer 2005速成版 + ASP.NET AJAX 1.0 使用目的:无刷新调用服务器端的 ...
- 使用Spring boot,Thymeleaf,AngularJS从零开始构建一个新的Web应用程序-第1部分
在这一系列博客文章中,我们将使用以下技术堆栈构建完整的响应式Web应用程序: 1)弹簧靴 – Spring MVC网站 – Spring Data JPA –Spring安全 2)Thymeleaf用 ...
- 如何在一天内构建和部署机器学习web应用程序 — 榴莲分类
本文我将带领大家构建一个Web应用程序以对榴莲进行分类,在这里(https://durian-classifier.herokuapp.com/) 可以查看相关信息. 如果你不知道榴莲是什么,那我向你 ...
- 使用缓存构建更快的 Web 应用程序
使用 Java™ 技术的 Web 开发人员可以使用缓存实用程序快速提升他们的应用程序的性能.Java 缓存系统(Java Caching System,JCS)是一个用于 Java 应用程序的强大分布 ...
最新文章
- php配置mongodb扩展、安装mongodb服务教程
- 吐槽一下微信公众号的赞赏号
- ​2012年至今,细数深度学习领域这些年取得的经典成果
- piwik的安装与配置
- Effective C++条款39: 避免 向下转换 继承层次
- 上下两个x轴_点胶机:3轴,4轴,5轴,你懂了吗?
- 5 table滑动固定_内滑动钢套钢蒸汽直埋保温钢管
- ccf报数游戏java_ccf 201712 02 (游戏)
- Python--进程、线程、协程对比
- C#设计模式之18-备忘录模式
- c语言用字符串统计一个整数中数字的个数_全国计算机等级考试二级C语言
- C语言题库青岛理工大学,青岛理工大学C语言期末复习题库.doc
- SharePoint2010 获取网站集SPSite,SPWeb对象的4种方法
- ajaxfileupload struts2 null_去掉烦人的 “ ! = null (判空语句)
- PHP+jQuery年会在线拍照抽奖
- Python连接redis实现有序队列queue先进先出/后进先出
- Buried Town 《死亡日记》 安卓 1.4.3版 破解 + 部分内购 版
- {转载}Circos绘图(1)
- Nginx 入门指南(二)
- CCAI 2017 | 中国工程院院士李德毅:L3的挑战与量产
热门文章
- MATLAB 画图 字符串连接表示 plot参数
- 黑群晖 断电 检测有bad sector_金属你不会以为回收就能直接再用吧,不是的,这些再生金属材料检测知识,很少人知道...
- mysql 锁怎么使用_MySQL锁的用法之行级锁
- MATLAB中特殊图形的绘制
- MATLAB函数句柄
- 利用cad计算型材的弹性模量_型材截面特性的CAD计算方法
- 文本生成,文本数据增强怎么做?
- virtualbox+vagrant快速创建虚拟机
- ps cs6 磨皮插件_DR5插件加强版 for Mac(ps磨皮滤镜)
- VS2012下基于Glut 矩阵变换示例程序2: