ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )(转)
TreeView 控件关键属性
CheckedNodes 声明被选择的单个或者多个节点
ExpandDepth 声明TreeView控件展开的深度
Nodes TreeNodeCollection 类型的节点集合
SelectedNode 当前被选择的节点
ShowCheckBoxes 声明是否显示复选框
ShowExpandCollapse 声明展示/折叠状态
ShowLines 声明节点间是否以线连接
LevelStyles 指定每个层次的节点的样式
NodeStyle 指定节点的默认样式
RootNodeStyle 指定根节点的样式
LeafNodeStyle 指定子节点的样式
SelectedNodeStyle 指定选定节点的样式
HoverNodeStyle 指定当鼠标移在节点上方时的样式
ImageUrl properties 指定表示展开/折叠的图片的URL路径
Checked 标明节点上的复选框的选择状态
ImageUrl 标明节点上所用图片的URL路径
NavigateUrl 当单击节点时所要导航到的URL路径
SelectAction 无导航节点被单击时所要执行的动作
Selected 标明当前节点是否被选择的节点
ShowCheckBox 标明当前节点是否显示复选框
Text 节点上的文字
CheckChanged 当复选框被选择或者清除选择时的所触发的事件
SelectedNodeChanged 当选择的节点发生改变时所触发的事件
TreeNodeCollapsed 当分支被折叠时所触发的事件
TreeNodeExpanded 当分支被展开时所触发的事件
TreeNodeDataBound 当节点被绑定到数据源时所触发的事件
TreeNodePopulate* Fired when a PopulateOnDemand node needs content
* Only fired on server if EnableClientScript="false" 1
<asp:TreeView ID="Tree" OnSelectedNodeChanged="OnUpdate" RunAt="server">
2
<Nodes>
3
4
</Nodes>
5
</asp:TreeView>
6
.
7
.
8
.
9
<script language="C#" runat="server">
10
void OnUpdate (Object sender, EventArgs e)
11
{
12
// Get the text of the selected node
13
string text = Tree.SelectedNode.Text;
14
15
}
16
</script>
按需装载节点
<asp:TreeView ID="Tree" OnSelectedNodeChanged="OnUpdate" RunAt="server">2
<Nodes>3
4
</Nodes>5
</asp:TreeView>6
.7
.8
.9
<script language="C#" runat="server">10
void OnUpdate (Object sender, EventArgs e)11
{12
// Get the text of the selected node13
string text = Tree.SelectedNode.Text;14
15
}16
</script> 1
<asp:TreeView OnTreeNodePopulate="OnPopulate" EnableClientScript="false"
2
RunAt="server">
3
<Nodes>
4
<asp:TreeNode Text="Populate this node on demand"
5
PopulateOnDemand="true" RunAt="server" />
6
</Nodes>
7
</asp:TreeView>
8
.
9
.
10
.
11
<script language="C#" runat="server">
12
void OnPopulate (Object sender, TreeNodeEventArgs e)
13
{
14
// Called first time the populate-on-demand node is expanded
15
TreeNode node = new TreeNode ("This node added dynamically");
16
e.Node.ChildNodes.Add (node);
17
}
18
</script>
Menu 控件关键属性
<asp:TreeView OnTreeNodePopulate="OnPopulate" EnableClientScript="false"2
RunAt="server">3
<Nodes>4
<asp:TreeNode Text="Populate this node on demand"5
PopulateOnDemand="true" RunAt="server" />6
</Nodes>7
</asp:TreeView>8
.9
.10
.11
<script language="C#" runat="server">12
void OnPopulate (Object sender, TreeNodeEventArgs e)13
{14
// Called first time the populate-on-demand node is expanded15
TreeNode node = new TreeNode ("This node added dynamically");16
e.Node.ChildNodes.Add (node);17
}18
</script>1
Items MenuItemCollection 类型的菜单项的集合
2
ItemWrap Specifies whether menu item should wrap
3
Orientation 标明菜单是纵向排列还是横向排列
4
SelectedItem 标明当前选择的菜单项
5
StaticStyle properties 标明静态菜单的样式
6
DynamicStyle properties 标明动态菜单的样式
MenuItem 控件关键属性
Items MenuItemCollection 类型的菜单项的集合2
ItemWrap Specifies whether menu item should wrap3
Orientation 标明菜单是纵向排列还是横向排列4
SelectedItem 标明当前选择的菜单项5
StaticStyle properties 标明静态菜单的样式6
DynamicStyle properties 标明动态菜单的样式1
ImageUrl 菜单项上所显示图片的URL路径
2
NavigateUrl 当菜单项单击时所要导航的目标路径
3
Selected 标明当前菜单项是否已经被选中
4
Text 菜单项上的文字 (显示给最终用户)
5
ToolTip 当光标暂停或者移过菜单项时所显示的提示文本
6
Value 菜单项的实际值
7
Menu事件
ImageUrl 菜单项上所显示图片的URL路径2
NavigateUrl 当菜单项单击时所要导航的目标路径3
Selected 标明当前菜单项是否已经被选中4
Text 菜单项上的文字 (显示给最终用户)5
ToolTip 当光标暂停或者移过菜单项时所显示的提示文本6
Value 菜单项的实际值7

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

1
<asp:Menu OnMenuItemClick="OnClick" RunAt="server">
2
<Items>
3
4
</Items>
5
</asp:Menu>
6
.
7
.
8
.
9
<script language="C#" runat="server">
10
void OnClick (Object sender, MenuEventArgs e)
11
{
12
// Get the text of the selected menu item
13
string text = e.Item.Text;
14
15
}
16
</script>
TreeView控件和 Site Maps 关系
<asp:Menu OnMenuItemClick="OnClick" RunAt="server">2
<Items>3
4
</Items>5
</asp:Menu>6
.7
.8
.9
<script language="C#" runat="server">10
void OnClick (Object sender, MenuEventArgs e)11
{12
// Get the text of the selected menu item13
string text = e.Item.Text;14
15
}16
</script>1
<asp:SiteMapDataSource ID="SiteMap" RunAt="server" />
2
<asp:TreeView DataSourceID="SiteMap" RunAt="server" />
Menus控件和 Site Maps 关系
<asp:SiteMapDataSource ID="SiteMap" RunAt="server" />2
<asp:TreeView DataSourceID="SiteMap" RunAt="server" />1
<asp:SiteMapDataSource ID="SiteMap" RunAt="server" />
2
<asp:Menu DataSourceID="SiteMap" RunAt="server" />
在配置文件中修改文件名
<asp:SiteMapDataSource ID="SiteMap" RunAt="server" />2
<asp:Menu DataSourceID="SiteMap" RunAt="server" /> 1
<configuration>
2
<system.web>
3
<siteMap>
4
<providers>
5
<remove name="AspNetXmlSiteMapProvider" />
6
<add name="AspNetXmlSiteMapProvider"
7
type="System.Web.XmlSiteMapProvider, System.Web, "
8
siteMapFile="Acme.sitemap" />
9
</providers>
10
</siteMap>
11
</system.web>
12
</configuration>
<siteMapNode> 属性
<configuration>2
<system.web>3
<siteMap>4
<providers>5
<remove name="AspNetXmlSiteMapProvider" />6
<add name="AspNetXmlSiteMapProvider"7
type="System.Web.XmlSiteMapProvider, System.Web, "8
siteMapFile="Acme.sitemap" />9
</providers>10
</siteMap>11
</system.web>12
</configuration>1
description 节点的描述信息
2
roles 指定当前项对哪些角色是可见的*
3
title 当前项的标题
4
url 当前项导航的目标路径
Security Trimming
description 节点的描述信息2
roles 指定当前项对哪些角色是可见的*3
title 当前项的标题4
url 当前项导航的目标路径1
<siteMap>
2
<siteMapNode title="Home" description="" url="default.aspx">
3
<siteMapNode title="Announcements" url="Announcements.aspx"
4
description="Information for all employees" /> 任何人均可见
5
<siteMapNode title="Salaries" url="Salaries.aspx"
6
description="Salary data" roles="Managers,CEOs" /> 只有Manager
7
和CEO权限的可见
8
<siteMapNode>
9
</siteMap>
使 Security Trimming生效
<siteMap>2
<siteMapNode title="Home" description="" url="default.aspx">3
<siteMapNode title="Announcements" url="Announcements.aspx"4
description="Information for all employees" /> 任何人均可见5
<siteMapNode title="Salaries" url="Salaries.aspx"6
description="Salary data" roles="Managers,CEOs" /> 只有Manager7
和CEO权限的可见8
<siteMapNode>9
</siteMap> 1
<configuration>
2
<system.web>
3
<siteMap>
4
<providers>
5
<remove name="AspNetXmlSiteMapProvider" />
6
<add name="AspNetXmlSiteMapProvider"
7
type="System.Web.XmlSiteMapProvider, System.Web, "
8
securityTrimmingEnabled="true"
9
siteMapFile="web.sitemap" />
10
</providers>
11
</siteMap>
12
</system.web>
13
</configuration>
SiteMapDataSource属性
<configuration>2
<system.web>3
<siteMap>4
<providers>5
<remove name="AspNetXmlSiteMapProvider" />6
<add name="AspNetXmlSiteMapProvider"7
type="System.Web.XmlSiteMapProvider, System.Web, "8
securityTrimmingEnabled="true"9
siteMapFile="web.sitemap" />10
</providers>11
</siteMap>12
</system.web>13
</configuration>1
Provider 用来获得站点导航数据的Provider
2
SiteMapProvider 用来获得站点导航数据的Provider的名称
3
ShowStartingNode 指定显示为根节点的项
4
StartFromCurrentNode 指定开始节点是否是根节点(false)或者是当前节点(true)默认 = false
5
StartingNodeOffset 使用层次来指定开始节点 (default = 0)
6
StartingNodeUrl 使用URL来指定开始节点
隐藏Site Map根节点
Provider 用来获得站点导航数据的Provider2
SiteMapProvider 用来获得站点导航数据的Provider的名称3
ShowStartingNode 指定显示为根节点的项4
StartFromCurrentNode 指定开始节点是否是根节点(false)或者是当前节点(true)默认 = false5
StartingNodeOffset 使用层次来指定开始节点 (default = 0)6
StartingNodeUrl 使用URL来指定开始节点1
<asp:SiteMapDataSource ID="SiteMap" ShowStartingNode="false"
2
RunAt="server" />
3
<asp:TreeView DataSourceID="SiteMap" RunAt="server" />
SiteMapPath控件关键属性
<asp:SiteMapDataSource ID="SiteMap" ShowStartingNode="false"2
RunAt="server" />3
<asp:TreeView DataSourceID="SiteMap" RunAt="server" />1
CurrentNodeStyle 当前节点的样式
2
CurrentNodeTemplate 当前节点的HTML模板
3
NodeStyle 非当前节点的样式
4
NodeStyleTemplate 非当前节点的HTML模板
5
PathSeparator 分隔符所使用的文字 (默认 = ">")
6
PathSeparatorStyle 分隔符的样式
7
PathSeparatorTemplate 分隔符所使用的HTML模板
8
RootNode 属性用来鉴别根节点
9
CurrentNode 属性用来鉴别当前节点
使用 Site Map API
CurrentNodeStyle 当前节点的样式2
CurrentNodeTemplate 当前节点的HTML模板3
NodeStyle 非当前节点的样式4
NodeStyleTemplate 非当前节点的HTML模板5
PathSeparator 分隔符所使用的文字 (默认 = ">")6
PathSeparatorStyle 分隔符的样式7
PathSeparatorTemplate 分隔符所使用的HTML模板8
RootNode 属性用来鉴别根节点9
CurrentNode 属性用来鉴别当前节点 1
// Write the title of the current node to a Label control
2
Label1.Text = SiteMap.CurrentNode.Title;
3
4
// Write the path to the current node to a Label control
5
SiteMapNode node = SiteMap.CurrentNode;
6
StringBuilder builder = new StringBuilder (node.Title);
7
8
while (node.ParentNode != null) {
9
node = node.ParentNode;
10
builder.Insert (0, " > ");
11
builder.Insert (0, node.Title);
12
}
13
14
Label1.Text = builder.ToString ();
// Write the title of the current node to a Label control2
Label1.Text = SiteMap.CurrentNode.Title;3

4
// Write the path to the current node to a Label control5
SiteMapNode node = SiteMap.CurrentNode;6
StringBuilder builder = new StringBuilder (node.Title);7

8
while (node.ParentNode != null) {9
node = node.ParentNode;10
builder.Insert (0, " > ");11
builder.Insert (0, node.Title);12
}13
14
Label1.Text = builder.ToString ();



浙公网安备 33010602011771号