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

阅读更多
想对作者说点什么? 我来说一句

SiteMapPath站点地图详解

2008年11月22日 13KB 下载

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭