ASP.NET网站导航及导航控件如何使用
网站导航?
传统的网站导航需要我们在是在页面上弄超链接的方式来实现的,在页面修改或移动的的时候需要一一在每个页中都要进行修改,这样会很麻烦。
在网站中建立网站地图,也就是把所有的链接地址放在一个专门的文件中进行统一管理,这样就很方面的进行管理。
怎么弄网站导航?怎么做?
需要在vs中新建网站地图文件,再把网站地图文件与我们想要的导航控件相关联,这样就可以实现导航的效果了,我们要更改某个地址,就直接在站点地图.sitemap文件中更改就行了。
vs中如何添加网站地图?
在vs中新建项中选择"站点地图"新建站点地图。
要使用站点地图,我们需要把站点地图文件添加到网站根文件夹下。
在新建一个站点地图文件的时候,默认的代码如下所示:
<?xml version="1.0"encoding="utf-8" ?> <sitemapxmlns="http://schemas.microsoft.com/aspnet/sitemap-file-1.0" > <sitemapnodeurl="" title="" description=""> <sitemapnodeurl=""title="" description="" /> <sitemapnodeurl=""title="" description="" /> </sitemapnode> </sitemap>
我们可以从代码中看出文件的根元素sitemap包含了<sitemapnode>元素,这些<sitemapnode>元素形成树形结构,第一层为网站的主页。
<sitemapnode>元素常用的属性表。
复杂的导航为了更能清晰的显示,我们可以多用几个.mapmap文件,也就是嵌套网站地图。
我们在新建一个文件夹,在这个文件夹下建两个网站地图文件,products.sitemap和servers.sitmap,建立web.sitemap放到网站的根目录下,用web.site的sitemapfile属性来链接其他两个.sitemap文件。 代码如下所示:
products.sitemap:
<?xml version="1.0"encoding="utf-8" ?> <sitemap xmlns="http://schemas.microsoft.com/aspnet/sitemap-file-1.0" > <sitemapnode title="products" description="我们的产品" url="~/chap/products.aspx"> <sitemapnode url="~/chap/software.aspx"title="软件" description="软件的提供" /> <sitemapnode url="~/chap/hardware.aspx"title="硬件" description="硬件的提供" /> </sitemapnode> </sitemap> services.sitemap文件: <?xml version="1.0"encoding="utf-8" ?> <sitemap xmlns="http://schemas.microsoft.com/aspnet/sitemap-file-1.0" > <sitemapnodeurlsitemapnodeurl="~/chap/services.aspx"title="services" description="我们提供的服务"> <sitemapnode url="~/chap/training.aspx"title="训练" description="训练" /> <sitemapnode url="~/chap/consulting.aspx"title="咨询" description="问题咨询" /> <sitemapnode url="~/chap/support.aspx"title="支持" description="技术支持" /> </sitemapnode> </sitemap>
web.sitemap文件:
<?xml version="1.0"encoding="utf-8" ?> <sitemap xmlns="http://schemas.microsoft.com/aspnet/sitemap-file-1.0" > <sitemapnodeurlsitemapnodeurl="home.aspx" title="home" description="home"> <sitemapnode sitemapfile="~/chap/products.sitemap" /> <sitemapnodesitemapfilesitemapnodesitemapfile="~/chap/services.sitemap" /> </sitemapnode> </sitemap>
导航地图建立完了,接下来显示导航地图。
sitemappath控件显示导航
直接把控件拖动到要导航的页面就可以了。控件会自动与导航地图进行绑定。
显示:
treeview控件显示导航
treeview控件通常用来树形结构的站点导航,可以用来显示xml、表格或关系数据。
基本的操作:
treeview每个节点其实都一个是个treenode类的对象。可以通过编程操作treenode对象动态的添加和修改。可以通过数据源控件进行绑定,例如通过sitemapdatasource空调感觉爱你或xmldatasource控件。
treeviewcollapseall()和expandall()方法折叠和展开节点。利用nodes.add()方法添加到节点到控件中,nodes.remove()方法删除指定节点。
demo:
在这里只是为了熟悉treeview,也没有实现,鼠标右击对treeview操作,和只刷新treeview控件,以及和数据绑定。只是为了熟悉treeview而熟悉treeview。
mytreeview代码:
<%@ pagelanguage="c#" autoeventwireup="true"codefile="menu.aspx.cs"inherits="menu" %> <!doctype html public "-//w3c//dtdxhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <formidformid="form1" runat="server"> <div> </div> <asp:menu id="menu1" runat="server"> <items> <asp:menuitem text="米老师" value="米老师"></asp:menuitem> <asp:menuitem text="七期" value="七期"> <asp:menuitem text="师姐一" value="师姐一"></asp:menuitem> <asp:menuitem text="师姐二" value="师姐二"></asp:menuitem> </asp:menuitem> <asp:menuitem text="八期" value="八期"> <asp:menuitem text="英语部" value="英语部"></asp:menuitem> <asp:menuitem text="值日生部门" value="值日生部门"></asp:menuitem> </asp:menuitem> <asp:menuitem text="九期" value="九期"></asp:menuitem> <asp:menuitem text="十期" value="十期"></asp:menuitem> <asp:menuitem text="十一期" value="十一期"></asp:menuitem> </items> </asp:menu> </form> </body> </html>
c#代码:
public partial class chap_mytreeview: system.web.ui.page { //移除当前节点 protectedvoid removenode_click(object sender, eventargs e) { //如果存在当前节点。 if (mytreeview.selectednode !=null) { //获取当前节点的父节点。 treenode parentnode= mytreeview.selectednode.parent; //移除当前节点。 if (parentnode !=null) { parentnode.childnodes.remove(mytreeview.selectednode); } else { mytreeview.nodes.remove(mytreeview.selectednode); } } } //添加当前节点。 protectedvoid addnode_click(object sender, eventargse) { //如果添加当前节点的值为空,则返回。 if (txtadd.text.trim().length <1) { return; } //建立节点的childnode,设置value属性。 treenode chilenode = new treenode(); //给新加的节点赋值。 chilenode.value = txtadd.text.trim(); //判断是否选中一个节点。 if (mytreeview.selectednode !=null)//如果存在当前节点。 { //将新的childnode对象添加到当前节点。 mytreeview.selectednode.childnodes.add(chilenode); txtadd.text = ""; } else { //作为根节点添加到树中。 mytreeview.nodes.add(chilenode); //清楚文本框。 txtadd.text = ""; } } //将树全部的折叠。 protectedvoid flodnodes_click(object sender, eventargs e) { mytreeview.collapseall();//将树全部折叠起来. } //全部展开. protectedvoid openallnode_click(object sender, eventargs e) { mytreeview.expandall();//全部展开树. } }
效果:
menu控件和treeview大同小异,在这就不赘述了。
word中的导航让我们一目了然的了解到文章的主体内容,我想每个看过厚厚文档的程序员对word的导航都深有体会。清晰合理的导航有效引导用户到网站的各个角落,百度地图能让我们找到每一块有名字的土地。一篇文章上说过,seo行业里总流传着这么句经典话语:“内容为王,外链为皇,内链为妃,关键词为相,代码为将,结构为城,更新为太子,百度垂帘听政。那导航不就是链接地址,也就处在皇妃的位置了。。。。
希望这篇关于asp.net网站导航及导航控件的文章希望对大家的学习有所帮助。