关闭

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

648人阅读 评论(0) 收藏 举报

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:38798次
    • 积分:827
    • 等级:
    • 排名:千里之外
    • 原创:47篇
    • 转载:2篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论