`

ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )

 
阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

TreeView 控件关键属性

CheckedNodes 声明被选择的单个或者多个节点
ExpandDepth 声明TreeView控件展开的深度
Nodes TreeNodeCollection类型的节点集合
SelectedNode 当前被选择的节点
ShowCheckBoxes 声明是否显示复选框
ShowExpandCollapse 声明展示/折叠状态
ShowLines 声明节点间是否以线连接
LevelStyles 指定每个层次的节点的样式
NodeStyle 指定节点的默认样式
RootNodeStyle 指定根节点的样式
LeafNodeStyle 指定子节点的样式
SelectedNodeStyle 指定选定节点的样式
HoverNodeStyle 指定当鼠标移在节点上方时的样式
ImageUrlproperties 指定表示展开/折叠的图片的URL路径

TreeNode关键属性

Checked 标明节点上的复选框的选择状态
ImageUrl 标明节点上所用图片的URL路径
NavigateUrl 当单击节点时所要导航到的URL路径
SelectAction 无导航节点被单击时所要执行的动作
Selected 标明当前节点是否被选择的节点
ShowCheckBox 标明当前节点是否显示复选框
Text 节点上的文字

TreeView 事件

CheckChanged 当复选框被选择或者清除选择时的所触发的事件
SelectedNodeChanged当选择的节点发生改变时所触发的事件
TreeNodeCollapsed 当分支被折叠时所触发的事件
TreeNodeExpanded 当分支被展开时所触发的事件
TreeNodeDataBound当节点被绑定到数据源时所触发的事件
TreeNodePopulate* FiredwhenaPopulateOnDemandnodeneedscontent
*OnlyfiredonserverifEnableClientScript="false"

使用 SelectedNodeChanged事件

asp:TreeViewID="Tree"OnSelectedNodeChanged="OnUpdate"RunAt="server">
Nodes>

Nodes>
asp:TreeView>
.
.
.
scriptlanguage="C#"runat="server">
voidOnUpdate(Objectsender,EventArgse)
{
//Getthetextoftheselectednode
stringtext=Tree.SelectedNode.Text;

}

script>

按需装载节点

asp:TreeViewOnTreeNodePopulate="OnPopulate"EnableClientScript="false"
RunAt
="server">
Nodes>
asp:TreeNodeText="Populatethisnodeondemand"
PopulateOnDemand
="true"RunAt="server"/>
Nodes>
asp:TreeView>
.
.
.
scriptlanguage="C#"runat="server">
voidOnPopulate(Objectsender,TreeNodeEventArgse)
{
//Calledfirsttimethepopulate-on-demandnodeisexpanded
TreeNodenode=newTreeNode("Thisnodeaddeddynamically");
e.Node.ChildNodes.Add(node);
}

script>

Menu 控件关键属性

Items MenuItemCollection类型的菜单项的集合
ItemWrap Specifieswhethermenuitemshouldwrap
Orientation 标明菜单是纵向排列还是横向排列
SelectedItem 标明当前选择的菜单项
StaticStyleproperties 标明静态菜单的样式
DynamicStyleproperties 标明动态菜单的样式

MenuItem 控件关键属性

ImageUrl 菜单项上所显示图片的URL路径
NavigateUrl 当菜单项单击时所要导航的目标路径
Selected 标明当前菜单项是否已经被选中
Text 菜单项上的文字(显示给最终用户)
ToolTip 当光标暂停或者移过菜单项时所显示的提示文本
Value 菜单项的实际值

Menu事件

MenuItemClick当菜单项被单击时所触发的事件
MenuItemDataBound当菜单项被绑定到数据源时所触发的事件

使用 MenuItemClick事件

MenuItemClick当菜单项被单击时所触发的事件
MenuItemDataBound当菜单项被绑定到数据源时所触发的事件

使用 MenuItemClick事件

Checked 标明节点上的复选框的选择状态
ImageUrl 标明节点上所用图片的URL路径
NavigateUrl 当单击节点时所要导航到的URL路径
SelectAction 无导航节点被单击时所要执行的动作
Selected 标明当前节点是否被选择的节点
ShowCheckBox 标明当前节点是否显示复选框
Text 节点上的文字

TreeView 事件

CheckChanged 当复选框被选择或者清除选择时的所触发的事件
SelectedNodeChanged当选择的节点发生改变时所触发的事件
TreeNodeCollapsed 当分支被折叠时所触发的事件
TreeNodeExpanded 当分支被展开时所触发的事件
TreeNodeDataBound当节点被绑定到数据源时所触发的事件
TreeNodePopulate* FiredwhenaPopulateOnDemandnodeneedscontent
*OnlyfiredonserverifEnableClientScript="false"

使用 SelectedNodeChanged事件

asp:TreeViewID="Tree"OnSelectedNodeChanged="OnUpdate"RunAt="server">
Nodes>

Nodes>
asp:TreeView>
.
.
.
scriptlanguage="C#"runat="server">
voidOnUpdate(Objectsender,EventArgse)
{
//Getthetextoftheselectednode
stringtext=Tree.SelectedNode.Text;

}

script>

按需装载节点

asp:TreeViewOnTreeNodePopulate="OnPopulate"EnableClientScript="false"
RunAt
="server">
Nodes>
asp:TreeNodeText="Populatethisnodeondemand"
PopulateOnDemand
="true"RunAt="server"/>
Nodes>
asp:TreeView>
.
.
.
scriptlanguage="C#"runat="server">
voidOnPopulate(Objectsender,TreeNodeEventArgse)
{
//Calledfirsttimethepopulate-on-demandnodeisexpanded
TreeNodenode=newTreeNode("Thisnodeaddeddynamically");
e.Node.ChildNodes.Add(node);
}

script>

Menu 控件关键属性

Items MenuItemCollection类型的菜单项的集合
ItemWrap Specifieswhethermenuitemshouldwrap
Orientation 标明菜单是纵向排列还是横向排列
SelectedItem 标明当前选择的菜单项
StaticStyleproperties 标明静态菜单的样式
DynamicStyleproperties 标明动态菜单的样式

MenuItem 控件关键属性

ImageUrl 菜单项上所显示图片的URL路径
NavigateUrl 当菜单项单击时所要导航的目标路径
Selected 标明当前菜单项是否已经被选中
Text 菜单项上的文字(显示给最终用户)
ToolTip 当光标暂停或者移过菜单项时所显示的提示文本
Value 菜单项的实际值

Menu事件

MenuItemClick当菜单项被单击时所触发的事件
MenuItemDataBound当菜单项被绑定到数据源时所触发的事件

使用 MenuItemClick事件

MenuItemClick当菜单项被单击时所触发的事件
MenuItemDataBound当菜单项被绑定到数据源时所触发的事件

使用 MenuItemClick事件

asp:MenuOnMenuItemClick="OnClick"RunAt="server">
Items>

Items>
asp:Menu>
.
.
.
scriptlanguage="C#"runat="server">
voidOnClick(Objectsender,MenuEventArgse)
{
//Getthetextoftheselectedmenuitem
stringtext=e.Item.Text;

}

script>

TreeView控件和 Site Maps 关系

asp:SiteMapDataSourceID="SiteMap"RunAt="server"/>
asp:TreeViewDataSourceID="SiteMap"RunAt="server"/>

Menus控件和 Site Maps 关系

asp:SiteMapDataSourceID="SiteMap"RunAt="server"/>
asp:MenuDataSourceID="SiteMap"RunAt="server"/>

在配置文件中修改文件名

configuration>
system.web>
siteMap>
providers>
removename="AspNetXmlSiteMapProvider"/>
addname="AspNetXmlSiteMapProvider"
type
="System.Web.XmlSiteMapProvider,System.Web,"
siteMapFile
="Acme.sitemap"/>
providers>
siteMap>
system.web>
configuration>

<sitemapnode> 属性</sitemapnode>

description 节点的描述信息
roles 指定当前项对哪些角色是可见的*
title 当前项的标题
url 当前项导航的目标路径

Security Trimming

configuration>
system.web>
siteMap>
providers>
removename="AspNetXmlSiteMapProvider"/>
addname="AspNetXmlSiteMapProvider"
type
="System.Web.XmlSiteMapProvider,System.Web,"
siteMapFile
="Acme.sitemap"/>
providers>
siteMap>
system.web>
configuration>

<sitemapnode> 属性</sitemapnode>

description 节点的描述信息
roles 指定当前项对哪些角色是可见的*
title 当前项的标题
url 当前项导航的目标路径

Security Trimming

description 节点的描述信息
roles 指定当前项对哪些角色是可见的*
title 当前项的标题
url 当前项导航的目标路径

Security Trimming

siteMap>
siteMapNodetitle="Home"description=""url="default.aspx">
siteMapNodetitle="Announcements"url="Announcements.aspx"
description
="Informationforallemployees"/>任何人均可见
siteMapNodetitle="Salaries"url="Salaries.aspx"
description
="Salarydata"roles="Managers,CEOs"/>只有Manager
和CEO权限的可见
siteMapNode>
siteMap>

使 Security Trimming生效

configuration>
system.web>
siteMap>
providers>
removename="AspNetXmlSiteMapProvider"/>
addname="AspNetXmlSiteMapProvider"
type
="System.Web.XmlSiteMapProvider,System.Web,"
securityTrimmingEnabled
="true"
siteMapFile
="web.sitemap"/>
providers>
siteMap>
system.web>
configuration>

SiteMapDataSource属性

configuration>
system.web>
siteMap>
providers>
removename="AspNetXmlSiteMapProvider"/>
addname="AspNetXmlSiteMapProvider"
type
="System.Web.XmlSiteMapProvider,System.Web,"
securityTrimmingEnabled
="true"
siteMapFile
="web.sitemap"/>
providers>
siteMap>
system.web>
configuration>

SiteMapDataSource属性

Provider 用来获得站点导航数据的Provider
SiteMapProvider 用来获得站点导航数据的Provider的名称
ShowStartingNode 指定显示为根节点的项
StartFromCurrentNode 指定开始节点是否是根节点(false)或者是当前节点(true)默认=false
StartingNodeOffset使用层次来指定开始节点(default=0)
StartingNodeUrl 使用URL来指定开始节点

隐藏Site Map根节点

asp:SiteMapDataSourceID="SiteMap"ShowStartingNode="false"
RunAt
="server"/>
asp:TreeViewDataSourceID="SiteMap"RunAt="server"/>

SiteMapPath控件关键属性

CurrentNodeStyle 当前节点的样式
CurrentNodeTemplate 当前节点的HTML模板
NodeStyle 非当前节点的样式
NodeStyleTemplate 非当前节点的HTML模板
PathSeparator 分隔符所使用的文字(默认=">")
PathSeparatorStyle 分隔符的样式
PathSeparatorTemplate分隔符所使用的HTML模板
RootNode 属性用来鉴别根节点
CurrentNode 属性用来鉴别当前节点

使用 Site Map API

//WritethetitleofthecurrentnodetoaLabelcontrol
Label1.Text=SiteMap.CurrentNode.Title;

//WritethepathtothecurrentnodetoaLabelcontrol
SiteMapNodenode=SiteMap.CurrentNode;
StringBuilderbuilder
=newStringBuilder(node.Title);

while(node.ParentNode!=null){
node
=node.ParentNode;
builder.Insert(
0,">");
builder.Insert(
0,node.Title);
}


Label1.Text
=builder.ToString();



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics