控件(四)——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;
        }
    }


显示效果:

 

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

转载于:https://www.cnblogs.com/liu765023051/archive/2012/05/21/2813597.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值