控件(四)——TreeView控件以SiteMapdataSource控件为数据源实现最简单的站点地图...

站点地图的应用还是比较普遍的。哪怕一个简单的个人主页,也会有站点地图。今天我们做一个小例子,作用只是抛砖引玉。

首先,添加一个Web.sitemap,注意我们这里不改变该文件的名字。添加如下代码:

<?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url="a.aspx" title="首页" description="点此返回首页"> <siteMapNode url="b.aspx" title="根目录B页" description="点此返回首页" /> <siteMapNode url="kongjian1.aspx" title="概念页" description="" /> <siteMapNode url="" title ="第一个子目录" description =""> <siteMapNode url="~/one/a.aspx" title="第一个子目录A页" description ="" /> <siteMapNode url="~/one/b.aspx" title ="第一个子目录B页" description ="" /> </siteMapNode> <siteMapNode url="" title ="one目录的子目录" description =""> <siteMapNode url="~/one/cone/a.aspx" title ="one目录的子目录a" description ="" /> <siteMapNode url="~one/cone/b.aspx" title="one目录的子目录b" description ="" /> </siteMapNode> <siteMapNode url="" title="TWO目录" descripition="这里是介绍"> <siteMapNode url="~/two/a.aspx" title="TWO目录的子目录a" descripition="这里是介绍"/> <siteMapNode url="~/two/b.aspx" title="TWO目录的子目录b" descripition="" /> </siteMapNode> <!--<siteMapNode siteMapFile ="~/mysm.sitemap" />--> <!--<siteMapNode provider="sqlsitemap" />--> <siteMapNode url="sitemap.aspx" title="动态修改内容中" description ="动态修改内存中的站点地图" /> </siteMapNode> </siteMap>


然后我们在default.aspx页添加一个TreeView控件,配置它的数据源为站点地图。就会如下图显示:

前台代码:

protected void Page_Load(object sender, EventArgs e) { //首先这里注册一个事件,也就是说在访问CurrentNode属性的时候触发这个事件(委托) SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(SiteMap_SiteMapResolve); } SiteMapNode SiteMap_SiteMapResolve(object sender, SiteMapResolveEventArgs e) {//我们自定义的处理方法 SiteMapNode CurrentNode = SiteMap.CurrentNode.Clone(true); //上面这句,获取并创建当前节点的副本,并同时复制他的上级节点 SiteMapNode TempNode = CurrentNode; int id = nid(); int page = npage(); //从下面方法中得到变量 if (id > 0) { TempNode.Url = TempNode.Url + "?id=" + id.ToString(); } if (id > 0 && page >= 0) { TempNode.Url = TempNode.Url + "?id=" + id.ToString(); } else if (page >= 0) { TempNode.Url = TempNode.Url + "?page" + page.ToString(); } return TempNode; } private int nid() {//随便设置的数 return 12; } private int npage() { return 3; } }


显示效果:

我们只需要点击相应连接,就会返回相应页面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值