zoukankan      html  css  js  c++  java
  • asp.net sitemap url动态参数

       下面是SiteMap部分代码    
        <siteMapNode url="~/NewCenter.aspx" title="新闻中心"  description="新闻中心" >      
        </siteMapNode>      
        <siteMapNode url="~/TypicalCase.aspx" title="口腔服务"  description="口腔服务" >      
        </siteMapNode>  
        有时候siteMap中需要动态添加参数,例如siteMap中配置url为~/TypicalCase.aspx  
        而实际应用中需要传参如:~/TypicalCase.aspx?id=1  
        下面是实现,参考网上代码完成的。  
        这是我写的一个用户控件的Cs文件   
        protected void Page_Load(object sender, EventArgs e)
        {
            SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(SiteMap_SiteMapResolve);
        }
        /// <summary>
        /// 当访问当前节点时候
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <returns></returns>
        SiteMapNode SiteMap_SiteMapResolve(object sender, SiteMapResolveEventArgs e)
        {
            //当在母版中获得当前页面的Request对象时,必须使用如下方法:
            HttpRequest currRequest = System.Web.HttpContext.Current.Request;
            /* SiteMap.CurrentNode对象是 BBS.sitemap 文件的当前节点值。
            * 而SiteMap.CurrentNode 对象在SiteMap类中只读,
            * 所以克隆一个SiteMapNode,并修改其对象的Title属性值。
            */
            string[] keys = currRequest.QueryString.AllKeys;
            if (keys != null && keys.Length > 0 && SiteMap.CurrentNode != null)
            {
                SiteMapNode currMapNode = SiteMap.CurrentNode.Clone(false);
                StringBuilder sbParam = new StringBuilder();
    
                for (int i = 0; i < keys.Length; i++)
                {
                    string key = keys[i];
                    if (i > 0 && i != key.Length - 1)
                    {
                        sbParam.Append("&");
                    }
                    sbParam.Append(key + "=" + currRequest.QueryString[key]);
                }
                currMapNode.Url = currMapNode.Url + "?" + sbParam;
                return currMapNode;
            }
            else
            {
                return SiteMap.CurrentNode;
            }
        }
    参考Url:http://www.cnblogs.com/xugang/archive/2010/12/01/1893260.html
      
  • 相关阅读:
    sql developer Oracle 数据库 用户对象下表及表结构的导入导出
    安装Win7和Office2010并激活
    Python内置方法的时间复杂度(转)
    服务框架Dubbo(转)
    ntpd和ntpdate
    ntpdate server时出错原因及解决
    什么才是程序员的核心竞争力
    使用DNSPod来处理网站的均衡负载(转)
    ubuntu设置服务开机启动
    Linux运行级别
  • 原文地址:https://www.cnblogs.com/lmy213/p/3070346.html
Copyright © 2011-2022 走看看