首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于AspNetPage的有关问题

2013-09-30 
关于AspNetPage的问题因需求需要在点击页码的时候清空地址栏已有的参数。如:http://localhost:53385/OrderM

关于AspNetPage的问题
因需求需要在点击页码的时候清空地址栏已有的参数。
如:http://localhost:53385/OrderManage/OrderIndex.aspx?id=2
点击页码2正常出现的情况是
http://localhost:53385/OrderManage/OrderIndex.aspx?id=2&page=2
但是我想要的想过是
http://localhost:53385/OrderManage/OrderIndex.aspx?page=2
不知道怎么实现……请各位大大帮忙~~

[解决办法]
URL参数重构,我给出代码,你看得懂就给分,看不懂就自己回去找书来多看书:

/// <summary>
        /// 构造指向规格值的URL链接
        /// 返回URL链接
        /// </summary>
        /// <param name="normID">要指向的规格ID</param>
        /// <param name="normValueID">要指向的规格值ID</param>
        /// <returns>URL链接</returns>
        protected string ReturnUrlOfNorm(object normID, object normValueID)
        {
            StringBuilder sbNewQueryString = new StringBuilder();
            sbNewQueryString.AppendFormat("?{0}={1}", normID, normValueID); // 指向当前规格
            NameValueCollection nvcQuery = Request.QueryString; / /获得URL查询字符串值键对集合
            int queryNumber = nvcQuery.Count;
            string paramName;
            string paramValue = normID.ToString();
            for (int i = 0; i < queryNumber; i++)
            {
                if (nvcQuery.AllKeys[i] != null)
                {
                    /* 参数名不为null时,取出参数名,并判断是否为paramValue(当前规格的参数名) */
                    if ((paramName = nvcQuery.AllKeys[i].ToString()) != paramValue) sbNewQueryString.AppendFormat("&{0}={1}", paramName, nvcQuery[i]); // 取出当前参数名和值,并与之前的其它查询参数值键对串接起来
                }
            }
            // 重新构造URL并返回给调用者
            return string.Format("{0}{1}", Request.Url.AbsolutePath, sbNewQueryString.ToString());
        }
[解决办法]
分页过程中无法对url参数进行操作,所以要去掉url中的id=2参数,在分页前就不应该存在,不过你可以试试设置UrlRewritePattern就是url重写,将id=2去掉,但不推荐这样做

=================================================================
ASP.NET MVC免费分页控件MvcPager 2.0版发布,功能更强大,欢迎使用:
http://www.webdiyer.com/mvcpager/

热点排行