- 浏览: 244313 次
- 性别:
- 来自: 葡萄牙
文章分类
最新评论
-
lightbulb:
...
jQuery中的动画与效果 -
kendezhu:
opportunity 写道 谢谢kendezhu分享,今天正 ...
jQuery 获取和设置select下拉框的值 -
opportunity:
谢谢kendezhu分享,今天正好用上了!
jQuery 获取和设置select下拉框的值
1.站点地图
(站点地图文件) 是一个名为Web.Sitemap的XML文件,ASP.NET 3.5内置了一个站点地图提供者的提供者类XmlSiteMapProvider,它将查找应用程序根目录下的Web.Sitemap文件(所以Web.Sitemap文件必须位于应
用程序根目录下且文件名称不能改),然后提取文件中的站点地图数据,并创建相应的SiteMap对象,
SiteMapDataSource将使用这些SiteMap对象向那些导航控件如(TreeView等)提供导航信息。
鼠标在站点上单击右键--"添加新项"--"站点地图文件",添加的Web.Sitemap内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/Aspnet/SiteMap-File-1.0" >
<siteMapNode url="" title="" description="">
<siteMapNode url="" title="" description="" />
<siteMapNode url="" title="" description="" />
<siteMapNode url="" title="" description="">
</siteMapNode>
</siteMap>
ASP.NET中有一个反映站点地图结构的静态对象SiteMap,该对象就对应了站点地图。它公开
SiteMapNode对象的集合,用于表示站点地图文件中的每一个节点。SiteMap的所有成员都是静态的,
因此无需实例化SiteMap对象。
SiteMap.CurrentNode 返回一个SiteMapNode对象,表示当点节点。
SiteMap.RootNode 返回一个SiteMapNode对象,表示根节点。
得到了SiteMapNode对象 如SiteMapNode Node=SiteMap.RootNode
Node.ParentNode (返回当前节点的上一级节点,如果当前节点是根节点,返回null)
Node.HasChildNodes (判断当前节点是否有子节点)
Node.ChildNodes (返回当前节点中所有子节点的集合)
Node.PreviousSibling (返回当前节点的上一个兄弟节点,无则返回null)
Node.NextSibling (返回当前节点的下一个兄弟节点,无则返回null)
1.1使用SiteMapPath控件来显示站点的导航路径。
SiteMapPath可以根据在Web.sitemap定义的数据自动地显示网站的路径,但只有在站点地图中列出的
页才能在SiteMapPath控件中显示导航数据。如果将SiteMapPath控件放置在站点地图中未列出的页上,
该控件不会向客户端显示任何数据。可以将该控件添加到母板页中,这样所有的子页面(站点地图中有),
只要应用了母板页,就都有导航效果。SiteMapPath控件之所以能够直接访问Web.sitemap文件,是
因为它直接工作在ASP.NET导航模型之上。
1.2 URL地址映射
一些情况下,开发人员可能希望隐藏真实的网页地址,特别是一些保密性要求强的网站,此时使用地址映射就很有必要。
另外开发人员希望保持网页的友好性,为用户提供友好易记的URL,以便于用户能很轻松地记住所访问的网页。
可以在web.config中使用<urlMappings>块来设置:
<configuration>
<system.web>
<urlMappings enable="true">
<add url="~/Category.aspx" mappedUrl="~/Default.aspx?catepory=12" />
</urlMappings>
...
</system.web>
</configuration>
mappedUrl表示真实地址 url表是映射的地址
2 使用TreeView控件导航
2.1 TreeView控件可以直接绑定到SiteMapDataSource控件中来显示导航数据,将TreeView的数据源设
置为SiteMapDataSource即可(当然前提是建立了Web.sitemap站点地图)。SiteMapDataSource是从站
点地图提供者XmlSiteMapProvider检索站点地图数据的。
2.2 可以通过编程的方式把Web.sitemap站点地图里的地图数据加载到TreeView控件里。
经过添加的TreeView生成的主要代码如下:
<asp:TreeView ID="TreeView1" runat="server">
<Nodes>
<asp:TreeNode NavigateUrl="~/WebForm1.aspx" Text="首页" Value="首页">
<asp:TreeNode NavigateUrl="~/WebForm2.aspx" Text="食品" Value="食品">
<asp:TreeNode Text="桂林米粉" ToolTip="桂林的米粉" Value="桂林米粉"></asp:TreeNode>
<asp:TreeNode NavigateUrl="~/WebForm5.aspx" Text="饮料" ToolTip="桂林的饮料" Value="饮料"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode NavigateUrl="~/NewFolder1/WebForm3.aspx" Text="服饰" Value="服饰">
<asp:TreeNode NavigateUrl="~/NewFolder1/WebForm4.aspx" Text="ADIDAS"
ToolTip="美国名牌" Value="ADIDAS"></asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>
可以看出TreeView与SiteMap类非常类似,TreeView有一个Nodes属性,TreeView.Nodes表示的是TreeView控件的节点的集合,TreeNode表示一个节点,它有一个ChildNodes属性,表示当前节点的子节点集合。由于它们都是集合,所以可以用Add Remove Count等集合方法来操作。如
TreeNode rootnode=new TreeNode(".NET");
TreeView1.Nodes.Add(rootnode);
为TreeView1添加一个Text属性为.NET的(上面也看到了,还有NavigateUrl等属性)节点。
TreeNode childnode=new TreeNode("ASP");又创建一个节点
childnode.ChildNode.Add(new TreeNode("PSA"));
为childnode创建一个子节点
rootnode.ChildNode.Add(childnode); 把childnode加入到rootnode之下
这样一来,层次是 .NET--ASP--PSA
刚才提到了NavigateUrl属性,当NavigateUrl属性被指定后,该节点为导航模式(点击该节点时导航到指定页面,不会触发SelectNodeChanged事件)。当没有设置NavigateUrl属性,该节点为选中模式(点击该点时,将产生一个页面回送并触发TreeView.SelectNodeChanged事件)。
实现代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//初始化根节点
TreeNode node = new TreeNode("首页", "", "", "~/WebForm1.aspx","");
//SiteMap.RootNode将返回站点地图的根节点,为一个SiteMapNode对象
//LoadSiteMap用来把SiteMapNode里的Title等属性添加到TreeNode对象里
LoadSiteMap(SiteMap.RootNode, node);
TreeView3.Nodes.Add(node);
}
}
protected void LoadSiteMap(SiteMapNode smn, TreeNode tn)
{
//求出SiteMapNode对象的节点数
int count = smn.ChildNodes.Count;
for (int i = 0; i < count; i++)
{
//把SiteMapNode里的Title等属性添加到新创建的TreeNode对象里
TreeNode node = new TreeNode(smn.ChildNodes[i].Title, "", "", smn.ChildNodes[i].Url, "");
//把创建的TreeNode对象作为子节点添加到它父节点中
tn.ChildNodes.Add(node);
//如果子节点还有节点的话,递归调用方法
if (smn.ChildNodes[i].HasChildNodes)
{
LoadSiteMap(smn.ChildNodes[i], node);
}
}
}
TreeView绑定XML文件
TreeView控件通过与XmlDataSource控件结合,使绑定XML文件变得非常简单。
把XmlDataSource拖到设计视图后,从其任务窗口中配置数据源。然后把TreeView控件的数据源
设置为XmlDataSource,为了使显示更好,当TreeView控件绑定到一个数据源控件后,在任务栏里
会增加一个名为编辑TreeNode节点数据绑定的任务项,可以非常方便的设计节点。
TreeNode的PopulateOnDemand属性
<asp:TreeView ID="TreeView1" runat="server" ExpandDepth="0"(展开的层次)
ontreenodepopulate="TreeView1_TreeNodePopulate">
<Nodes>
<asp:TreeNode Text="桂林米粉" PopulateOnDemand="true"></asp:TreeNode>
</Nodes>
</asp:TreeView>
TreeView的TreeNode节点的PopulateOnDemand属性设为true时,当单击该节点时会触发
TreeView1_TreeNodePopulate事件,在该事件里可以动态添加TreeNode节点,实现按需添加节点的效果。
带复选框的TreeView控件
如果一个TreeNode节点没有设置链接属性,那么当我们单击该节点的时候会触发TreeView的
SelectedNodeChanged事件,其实还有一个前提,就是该节点的SelectAction属性(如果TreeView没有绑定数据源控件在其任务菜单的编辑节点里改,如果绑定了数据源控件在其任务栏菜单的编辑TreeNode数据绑定里改)设为了select,还有其他属性值none(那么该节点就不能被点击)Expand(点击该节点会切换其展开和折叠状态,还会引发TreeView的TreeNodeExpanded事件或TreeNodeCollapsed事件)
无论是TreeView还是TreeNode都有ShowCheckBoxs属性,TreeView的ShowCheckBoxs有All Leaf None Parent Root等属性值,TreeNode的ShowCheckBoxs有true和false的选择,将给相应的TreeNode前加上复选框,我们就可以获得用户选择了哪些节点:
if (TreeView1.CheckedNodes.Count>0)
{
label1.text="当前选择了如下节点:"+"<br />"
foreach (TreeNode item in TreeView1.CheckedNodes)
{
label1.text += item.Text+"<br />";
}
}
else
{
label1.text="没有选择节点";
}
3.使用Menu控件导航
先看Menu控件的代码:
<asp:Menu ID="Menu1" runat="server">
<Items>
<asp:MenuItem Text="首页" Value="首页"></asp:MenuItem>
<asp:MenuItem Text="NBA球队" Value="NBA球队">
<asp:MenuItem Text="洛杉矶湖人" Value="洛杉矶湖人"></asp:MenuItem>
<asp:MenuItem Text="波士顿凯尔特人" Value="波士顿凯尔特人"></asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="CBA球队" Value="CBA球队">
<asp:MenuItem Text="新疆广汇" Value="新疆广汇"></asp:MenuItem>
</asp:MenuItem>
</Items>
</asp:Menu>
与TreeView的构造非常相似,所以Menu很多方面的操作与TreeView是相同的。可以很轻松地绑定到
SiteMapDataSource控件来实现导航,具体做法与TreeView相同。不过有一点要注意,因为站点地图里
只能有一个根节点,也就是说,只有根节点自己位于最上层,Menu有一个属性StaticDisplayLevels是用
来设置菜单中静态显示几层,默认为1,那么进入页面时,在鼠标没进入菜单时只能先显示一层,所以
StaticDisplayLevels最好是选大于1,能显示多层菜单,其余菜单是动态模式,只有鼠标滑过时才显示,有个属性是MaximumDynamicDisplayLeves,用来设置当鼠标滑过时那些动态模式的菜单能显示几层。另外Menu的Orientation属性用来控制菜单是水平效果还是垂直效果。
其他如通过XMLDataSource绑定到XML文件与TreeView是一样的。
不过很重要的一点是浏览器的兼容性问题,对于Menu控件,好像谷歌浏览器是不支持的,在IE8下也只有在兼容性视图下才能显示正常http://www.cnblogs.com/blodfox777/archive/2008/09/08/1286582.html
发表评论
-
ASP.NET报表技术
2011-08-01 00:39 2290水晶报表 我们先来看看在ASP.NET中使用水晶报表需 ... -
ASP.NET中的缓存技术
2011-02-21 22:54 1434http://www.cnblogs.com/ltp/arch ... -
异常处理和日志追踪
2010-12-21 12:25 1252关于异常的处理想必 ... -
ASP.NET状态管理
2010-12-13 16:10 1341开发WinFrom的程序员可能不会在意维护应用程序 ... -
关于aspx页面类继承于cs页面类
2010-10-19 17:01 4940cs页面类继承自System.Web.UI.Page类,一般和 ... -
使用数据库文件
2010-10-14 19:55 885以前很多项目都是连接的SQLServer数据库里的数据库 ... -
C#与Javascript中时间的格式化操作
2010-09-15 16:41 1664C#里时间格式化 一般的DateTime.Now.ToStr ... -
ASP.NET页面生命周期
2010-08-25 02:53 891http://www.cnblogs.com/KingStar ... -
获得漂亮的Flash|Javascript钟表代码
2010-08-24 16:06 1599http://www.clocklink.com ht ... -
ASP.NET登录控件延伸(个性化)
2010-08-24 03:06 1888既然由登录控件涉及到了Membership,那么就不得不 ... -
程序集(类库,java里也叫类库,对于NetBean位于其库里)与命名空间(相当于java里的包)
2010-08-23 21:23 1517http://book.51cto.com/art/20090 ... -
Temporary ASP.NET Files
2010-08-23 21:05 738http://book.51cto.com/art/20090 ... -
webapplication与website
2010-08-22 16:59 907http://blog.csdn.net/ups216/arc ... -
概念,依旧是概念……csproj文件是做什么用的?
2010-08-22 16:37 1461csproj是.net项目文件的后缀名,它是C Sharp P ... -
web application中使用Profile应该注意的问题
2010-08-22 14:04 652http://hi.baidu.com/windlhj/blo ... -
.Net 2.0 中的发送邮件实现C#代码
2010-08-19 16:15 1552http://hi.baidu.com/ganggang021 ... -
GridView 设置格式化 DataFormatString
2010-08-08 00:23 822http://www.cnblogs.com/emanlee/ ... -
利用 CSS Friendly Control Adapters 将 ASP.NET 控件转为符合WEB标准的、有语意的HTML页面 CSS 样式表控制。
2010-08-02 19:57 951http://www.cnblogs.com/wilsonwu ... -
App_data,App_code, bin,App_Browser,App_Themes,App_GlobalResources,App_LocalResou
2010-08-02 19:52 905http://blog.csdn.net/jjjjj10231 ... -
DropDownList1_SelectedIndexChanged不执行
2010-07-26 15:52 1123http://blog.sina.com.cn/s/blog_ ...
相关推荐
在ASP.NET中,站点导航技术对于构建大型企业级网站至关重要,因为它提供了用户友好的界面,使用户能够轻松地在网站的各个页面之间导航。ASP.NET 3.5引入了内置的站点地图和一些高级服务器控件,如TreeView和Menu,以...
在这个主题及导航的示例中,我们关注的是如何通过ASP.NET来实现界面的美观设计和用户友好的导航功能。以下是对这个话题的详细解释: 1. ASP.NET 主题: ASP.NET的主题允许开发者为整个网站或应用程序定义一致的...
ASP.NET 导航条是构建Web应用程序中常用的一种组件,用于提供网站的层级结构和页面间的导航链接。在ASP.NET框架中,导航条通常由服务器控件如TreeView、Menu或NavigationBar来实现,这些控件可以帮助开发者创建动态...
ASP.NET站点地图是一种强大的工具,用于为Web应用程序创建和管理导航结构。它允许开发者构建一个清晰、层次化的网站布局,使用户能够轻松地找到所需的信息。在Visual Studio 2008中,站点地图功能被集成,使得创建和...
本文将深入探讨如何利用ASP.NET技术和jQuery库来构建一个具有吸引力的导航菜单。ASP.NET是一种强大的Web应用程序框架,而jQuery则是一个轻量级的JavaScript库,两者结合可以实现动态、交互式的网页效果。 首先,ASP...
在本文中,我们将深入探讨ASP.NET的核心概念、开发环境以及如何构建类似的网址导航应用。 ASP.NET是微软推出的用于构建动态网站、Web应用和Web服务的框架。它提供了一种模型驱动的编程方式,简化了Web开发流程。在...
在ASP.NET 2.0版本中,引入了一组强大的导航控件,极大地增强了用户界面的交互性和可用性。这些控件允许开发者轻松创建功能丰富的网站导航结构,使用户能够方便地浏览和定位网页内容。 导航控件包括以下几种: 1. ...
在ASP.NET 2.0中,站点地图(SiteMap)是一个强大的功能,它为创建和维护网站的导航结构提供了方便。通过站点地图,开发者可以清晰地定义网站的层次结构,为用户提供直观的导航体验,同时也可以方便地实现面包屑导航...
包括认识ASP.NET 2.0、ASP.NET 2.0网页语法、字符串与日期处理、Page对象、...中的应用、高性能数据处理技术、ADO.NET数据库技术、数据绑定控件、ASP.NET数据缓存技术、站点导航和导航控件、Web用户控件、创建ASP.NET...
`<asp:Menu>`控件是一个用于显示站点导航结构的强大工具,它可以自动生成一个包含链接的导航菜单。此控件支持多种布局方式(如水平或垂直),并且可以很容易地定制样式和行为。例如,在给定的代码片段中: ```html ...
ASP.NET站点导航是构建Web应用程序时非常重要的一个方面,它帮助用户轻松地浏览网站的各个部分。在ASP.NET中,站点导航主要通过站点地图(Web.sitemap)和一系列的导航控件来实现。本章主要讲解如何利用这些工具构建...
在这个“asp.net导航站源码”中,我们很显然关注的是一个使用ASP.NET技术构建的网络导航站点的源代码。 导航站通常包含一系列链接,帮助用户方便地访问各种互联网服务和热门网站。它们可能是按类别分类的,比如新闻...
在本案例导航中,你将学习到以下ASP.NET的关键知识点: 1. **基础概念**:了解ASP.NET的基本架构,包括页面生命周期、控件模型和事件处理机制,这些都是构建动态网页的基础。 2. **C#编程**:ASP.NET通常与C#语言...
本书结合实例,全面系统地介绍了ASP.NET 2.0应用开发技术,包括ASP.NET 2.0服务器控件,ASP.NET 2.0数据源控件和新的数据绑定方法,验证控件,样式、外观和主题,母版页,站点导航和导航控件,ASP.NET 2.0的身份验证...
介绍ASP.NET主题、母版页和站点导航的基本概念和应用
《ASP .NET 2.0站点编程指南》深入浅出地讲解了ASP.NET 2.0框架下的网站开发技术,涵盖了母版页、站点导航、用户控件等核心特性,以及安全性、性能优化等方面的知识。对于希望掌握ASP.NET 2.0开发技巧的程序员来说,...
ASP.NET2.0的导航系统确实给web开发带来方便,但是用过的用户就会发现导航系统有一个很大的缺陷:他需要你手工编写web.sitemap,web.sitemap的语法是“相当的简单”,但是实际运用时,虽然简单,对于稍微复杂的导航...
ASP.NET的Master Pages技术可以定义全局布局,各个内容页可以通过继承Master Page实现一致的头部、导航和脚部。 6. **错误处理和日志记录**:为了保证系统的稳定性和可维护性,源码中可能有错误捕获和日志记录的...
综合以上内容,这个"树形asp.net模板"不仅展示了如何使用JavaScript和ASP.NET构建动态的无限级菜单,还涵盖了数据库操作和版本迁移等实际开发中常见的技术挑战。对于学习和理解ASP.NET Web开发,以及提升Web应用的...
ASP.NET是微软公司开发的一种用于构建动态网站、Web应用程序和Web服务的技术,它基于.NET Framework,为开发者提供了强大而高效的应用程序开发环境。本文件参考将深入探讨ASP.NET的核心概念、关键特性和实用技巧。 ...