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

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找到自己的位置,从而找到上级各部分,生成站点地图。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值