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

来源:互联网 发布:阿里云系统软件下载 编辑:程序博客网 时间:2024/05/22 05:11

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

首先,添加一个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;        }    }


显示效果:

 

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

原创粉丝点击