动态修改内存中站点地图节点

protected voidPage_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 + "&page=" +page.ToString();

 

               

           }

           else if (page>=0)

           {

               TempNode.Url= TempNode.Url + "?page=" + page.ToString();

               

           }

           return TempNode;

            

 

       }

       private int nid()

       {

          //返回一个数字的代码

       }

       private int npage()

       {

          //返回一个数字的代码

       }


posted @ 2011-12-18 13:23  MXi4oyu  阅读(169)  评论(0编辑  收藏  举报