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

asp.net|treeview|web|程序|动态

TreeView 控件关键属性

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

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

CheckChanged               当复选框被选择或者清除选择时的所触发的事件
SelectedNodeChanged  当选择的节点发生改变时所触发的事件
TreeNodeCollapsed       当分支被折叠时所触发的事件
TreeNodeExpanded       当分支被展开时所触发的事件
TreeNodeDataBound    当节点被绑定到数据源时所触发的事件
TreeNodePopulate*       Fired when a PopulateOnDemand node needs content
* Only fired on server if EnableClientScript="false"
使用 SelectedNodeChanged事件

<asp:TreeView ID="Tree" OnSelectedNodeChanged="OnUpdate" RunAt="server">
  <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>
按需装载节点

<asp:TreeView OnTreeNodePopulate="OnPopulate" EnableClientScript="false"
  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 控件关键属性

Items                                          MenuItemCollection 类型的菜单项的集合
ItemWrap                                  Specifies whether menu item should wrap
Orientation                                标明菜单是纵向排列还是横向排列
SelectedItem                             标明当前选择的菜单项
StaticStyle properties              标明静态菜单的样式
DynamicStyle properties        标明动态菜单的样式
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*       Fired when a PopulateOnDemand node needs content
* Only fired on server if EnableClientScript="false"
使用 SelectedNodeChanged事件

<asp:TreeView ID="Tree" OnSelectedNodeChanged="OnUpdate" RunAt="server">
  <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>
按需装载节点

<asp:TreeView OnTreeNodePopulate="OnPopulate" EnableClientScript="false"
  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 控件关键属性

Items                                          MenuItemCollection 类型的菜单项的集合
ItemWrap                                  Specifies whether menu item should wrap
Orientation                                标明菜单是纵向排列还是横向排列
SelectedItem                             标明当前选择的菜单项
StaticStyle properties              标明静态菜单的样式
DynamicStyle properties        标明动态菜单的样式
MenuItem 控件关键属性

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

Menu事件

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

使用 MenuItemClick事件

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

使用 MenuItemClick事件

<asp:Menu  OnMenuItemClick="OnClick" RunAt="server">
  <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:SiteMapDataSource ID="SiteMap" RunAt="server" />
<asp:TreeView DataSourceID="SiteMap" RunAt="server" />
Menus控件和 Site Maps 关系

<asp:SiteMapDataSource ID="SiteMap" RunAt="server" />
<asp:Menu DataSourceID="SiteMap" RunAt="server" />
在配置文件中修改文件名

<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>
<siteMapNode> 属性

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

<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>
<siteMapNode> 属性

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

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

<siteMap>
  <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生效

<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>
SiteMapDataSource属性

<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>
SiteMapDataSource属性

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

<asp:SiteMapDataSource ID="SiteMap" ShowStartingNode="false"
    RunAt="server" />
<asp:TreeView DataSourceID="SiteMap" RunAt="server" />
SiteMapPath控件关键属性

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

// Write the title of the current node to a Label control
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 ();

时间: 2024-05-26 19:18:38

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

ASP.NET 2.0中动态修改页面标题

asp.net|动态|页面 在老外的站上看到解决的好方法,故简单编译之:在一个asp.net 的应用中,经常要动态修改页面的标题,一个典型的例子就是,在一个页面导航的控件中,希望用户点选哪一个连接,在页面的title里就显示相关的内容,举个例子,比如一个网站,有如下的网站架构:有图书分类,下面再有中国图书,外国图书分类,则一般可以用树形或者asp.net 2.0的新增加的导航栏控件(sitemap),来实现,比如 图书--->中国图书;图书---->外国图书等,而如果这个时候,能在页面的<

ASP.NET 2.0里动态访问META标记

asp.net|动态|访问 在asp.net 2.0里,可以支持动态访问meta 标记了,比如可以动态增加关键字了Private Sub CreateMetaTags()      Dim hm As New HtmlMeta()     Dim head As HtmlHead = CType(Page.Header, HtmlHead)     hm.Name = "Keywords"     hm.Content = "VB.Net, VB.NET, .NET"

DB2 9和ASP.NET 2.0构建下一代应用程序

简介 本教程描述了使用具有ASP.NET 2.0主从复合关系增强的DB2的益处.过去,通过连接两个数据网格来支持主从复合关系通常很困难,但是现在,借助Visual Studio 2005和ASP.NET 2.0,只需使用合适的控件就能构建主从复合关系应用程序. 本教程演示如何在不编写代码的情况下构建主从复合应用程序.不必编写代码,我们使用ASP.NET 2.0中的Grid View和Details View控件构建一个示例应用程序,其功能是显示一个公司特定部门的职员. 为何使用支持ASP.NET

用ASP.NET 2.0实现AJAX风格的Web开发

ajax|asp.net|web 提要 在过去的几个月中,基于AJAX技术开发高度交互的Web应用程序的设计模式迅速流行开来.现在,具有高度可配置性的Web应用程序,例如Google Maps和A9,都在综合利用这些技术来创造丰富的客户端用户体验.其实,结合AJAX技术进行Web开发并非最近的研究成果,只不过这些技术一直以来不断得到持续更新和改进. 本文中我有三个目的.首先,我想提供一个AJAX风格应用程序的高级概述.其次,我想详细地描述ASP.NET 2.0的异步回调机制.最后,我想对构建AJ

ASP.NET中根据XML动态创建使用WEB组件

asp.net|web|xml|创建|动态   前段时间笔者在开发中需要动态创建WEB组件,本以为是小事一桩,谁知看时容易做时难.里面还真有些小问题.下面笔者就结合自己的程序来介绍一下如何动态创建并使用WEB组件,希望能给做类似工作的朋友提供一点帮助.   一.程序思路   程序主要分三部分:   1.程序要根据XML中的数据信息确定需要创建的WEB组件的个数.   2.动态创建WEB组件.   3.使用动态创建的WEB组件.   其中2和3是笔者要重点介绍的部分.   下面笔者就按照这三部分结

ASP.NET 2.0数据教程之六十:在程序启动阶段缓存数据

返回"ASP.NET 2.0数据教程目录" 导言: 前面2章考察了在表现层和缓存层缓存数据.在第58章,我们探 讨了在表现层设置ObjectDataSource的相关cache属性来缓存数据.在第59章,我 们探讨了创建一个单独的分开的缓存层.这2章都是采用"应激装载" (reactive loading)的模式来缓存数据.该模式下,每次请求数据时,系统先 检查其是否在内存,如果没有,则从数据源--比如数据库,来获取 数据,然后将其存储在内存里.该模式的优势在于执行

ASP.NET中根据XML动态创建使用WEB组件_实用技巧

  前段时间笔者在开发中需要动态创建WEB组件,本以为是小事一桩,谁知看时容易做时难.里面还真有些小问题.下面笔者就结合自己的程序来介绍一下如何动态创建并使用WEB组件,希望能给做类似工作的朋友提供一点帮助.   一.程序思路   程序主要分三部分:   1.程序要根据XML中的数据信息确定需要创建的WEB组件的个数.   2.动态创建WEB组件.   3.使用动态创建的WEB组件.   其中2和3是笔者要重点介绍的部分.   下面笔者就按照这三部分结合程序实例(以c#为例)来一一介绍.   二

ASP.NET 2.0中创建基于XML的应用程序

XML是目前在Web上应用很普遍的一项技术,而在.NET 2.0中,则提供了更为丰富的功能,使得在创建XML应用的时候更加得心应手.在本文中,将简单以一个例子来说明,.NET 2.0在创建XML应用时的一些新特性. 首先,我们平常在创建Web应用时,都会选择以数据库的形式来存贮数据的,但如果要以纯XML来存贮数据的话,那的确会是种挑战.在.NET 1.0/1.1框架中,对XML的支持功能有限,比如对同一应用中的多个XML文件的支持.在.NET 2.0中,这种情况得到了改变,增加了新的功能,比如:

使用AJAX技术构建更优秀的Web应用程序

ajax|web|程序 一. 简介 异步JavaScript+XML(即Ajax),是一种创建交互式web应用程序的Web开发技术.这种程序使用JavaScript和XML从客户端提交服务器请求,且整个过程中仅需要交换少量的数据而不必提交整个web页面.因此,这样的程序将更快和更具响应性,并将成为新一代客户机-服务器系统的重要基础技术之一.你可以在站点http://www.google.com/webhp?complete=1&hl=en处看到一种良好的AJAX实践技术展示.在此页面中,如果你把