web站点递归绑定数据库的站点地图(SiteMapPath控件与Web.sitemap结合)

原创 2013年12月02日 17:40:08

1. 在网站根目录建立一个Web.sitemap文件

2.建立一个带有BUTTON的页面

3 CS页面代码

Lion.BLL.Base_Menu bll = new Lion.BLL.Base_Menu();
    string strPathName = "";
    protected void Page_Load(object sender, EventArgs e)
    {
       strPathName = Server.MapPath("\\") + "Web.sitemap";

        Bind();
    }

    void Bind()
    {
        Encoding oENC = Encoding.UTF8;
        XmlTextWriter oXML = new XmlTextWriter(strPathName, oENC);
        oXML.WriteStartDocument(); 
        oXML.WriteStartElement("siteMap");
        oXML.WriteStartElement("siteMapNode");
        oXML.WriteAttributeString("title", "目前位置");
        //oXML.WriteStartElement("siteMapNode");
        List<Lion.Model.Base_Menu> collection = bll.GetModelList("IsShow=1 and Belong=" + (int)TableState.MenuBelong.UserPage + " and ParentID='" + Guid.Empty + "' order by sort");
        foreach (Lion.Model.Base_Menu item in collection)
        {
            oXML.WriteStartElement("siteMapNode");
            oXML.WriteAttributeString("title", item.MenuName.ToString());
            if (item.MenuUrl != "")
            {
                oXML.WriteAttributeString("url", item.MenuUrl.ToString());
            }
            BindNode(item.MenuID, oXML);
            oXML.WriteEndElement();
        }
       
        oXML.WriteEndElement();
        oXML.WriteEndDocument(); 
        oXML.Flush();
        oXML.Close();     
        oXML = null;

    }

    void BindNode(Guid tid, XmlTextWriter oXML)
    {
       
        List<Lion.Model.Base_Menu> collection = bll.GetModelList("IsShow=1 and Belong=" + (int)TableState.MenuBelong.UserPage + " and ParentID='" + tid + "' order by sort");
        foreach (Lion.Model.Base_Menu item in collection)
        {
            oXML.WriteStartElement("siteMapNode");
            oXML.WriteAttributeString("title", item.MenuName.ToString());
            oXML.WriteAttributeString("url", item.MenuUrl.ToString());
            oXML.WriteEndElement();
            BindNode(item.MenuID, oXML);
        }
       

    }

 

* 注意 本代码是开页面时直接生成Web.sitemap内容 可以把Bind()写在BUTTON的事件里。本文用的是LIST得到数据库列表 也可以用DATATABLE.

点击按钮 自动把数据库内容写入Web.sitemap 这样控件SiteMapPath就可以自动绑定Web.sitemap内容,把这段代码放入用户控件里,那么任何用此用户控件的页面就可以根据数据库里记录的URL找到自己的位置,从而找到上级各部分,生成站点地图。

网站导航——网站地图和TreeView的使用

ASP.NET站点导航能够在一个中央位置存储指向所有页面的连接,并在列表中呈现这些连接,也可以使用一个特定的Web服务器控件在每个页面上呈现导航菜单。设计站点导航时,使用站点地图描述站点的逻辑结构,使...
  • zc707212993
  • zc707212993
  • 2013年05月12日 19:44
  • 882

巧用ASP.NET中的Web服务器控件

不知大家对ASP.NET中的Web服务器控件了解怎么样?本篇博客小编将为大家介绍一些小技巧,轻松使用控件。 我们知道Web控件分为四种:内部,复杂,列表和验证控件,那么这些控件具体都有哪些,具有什么...
  • hongwei15732623364
  • hongwei15732623364
  • 2016年07月13日 23:30
  • 391

Web站点常见安全问题

Web站点常见安全问题类型
  • tiankai30
  • tiankai30
  • 2017年02月06日 13:51
  • 380

web到底是什么意思,web站点的创建方法

web到底是什么意思。先来看看两个名词:   一、超文本(hypertext)   一种全局性的信息结构,它将文档中的不同部分通过关键字建立链接,使信息得以用交互方式搜索。它是超级文本的简称。 ...
  • zyj66666
  • zyj66666
  • 2017年06月19日 09:39
  • 665

asp.net--构建网站第一步(站点结构分析—>建立站点地图)

由上图
  • yayun0516
  • yayun0516
  • 2014年11月23日 18:06
  • 1180

配置Apache 和 配置Nginx 的默认站点

配置 Apache 的虚拟主机  配置Apache的虚拟主机是根据 /usr/local/apache2/conf/extra/httpd-vhosts.conf 文件配置的。 # cat /usr/...
  • kggnzbzdwan
  • kggnzbzdwan
  • 2015年10月17日 11:33
  • 253

Apache搭建多个站点方法详解

Apache的虚拟主机是一种允许在同一台机器上配置多个不同站点的web服务器环境的,就是iis一样可以创建多站点了,但是apache需要在编辑状态操作,不能像windows iis直接点击几下就好了,...
  • Liuqz2009
  • Liuqz2009
  • 2016年04月15日 14:46
  • 7588

配置Web站点的虚拟目录

在tomcat中,web站点的根目录默认为ROOT目录,然而它的思想其实是“映射”。 在apache-tomcat-7.0.57\conf中的server.xml中,有项。在tomcat7中找不到,...
  • Nanphonfy
  • Nanphonfy
  • 2015年09月26日 10:31
  • 776

.NET站点导航之TreeView控件绑定数据库

今天跟大家分享的内容是 站点导航之TreeView控件绑定数据库,具体的页面展示呢,如下:           。            这里呢,其实是以树状图的形式,展现的数据库的内容,数据库的...
  • SmallXianNotImmortal
  • SmallXianNotImmortal
  • 2016年01月19日 13:10
  • 276

跨站点请求伪造攻击

1. 跨站点请求伪造攻击(CSRF)是属于伪造客户端请求的一种攻击方式,目的是让用户访问攻击者伪造的网页,执行网页中的恶意脚本,伪造用户请求,对用户有登录权限的网站空间实施攻击 2. 这个攻击的基本...
  • ShaoqunLiu
  • ShaoqunLiu
  • 2016年08月28日 16:28
  • 958
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:web站点递归绑定数据库的站点地图(SiteMapPath控件与Web.sitemap结合)
举报原因:
原因补充:

(最多只允许输入30个字)