/// <summary> /// 地址,路径编码,排除 / // \ \\等编码 /// </summary> /// <param name="str"></param> /// <param name="encoding">编码类型</param> /// <returns></returns> public static string StrEncodeUrl(string str, string encoding) { if (str == null) { return(""); } char tempStr = ' '; string tempStr2 = ""; string returnStr = ""; char[] ary = str.ToCharArray(); for (int i = 0; i < str.Length; i++) { tempStr = ary[i]; //过滤特别字符 if (!EKGetString.IsExist(":,?,&,/,//,///,////,\\,\\\\,\\/,/\\", ',', tempStr.ToString())) { tempStr2 = EKRequest.StrEncode(tempStr.ToString(), encoding); } else { tempStr2 = tempStr.ToString(); } //新编码字符串 returnStr += tempStr2; } return(returnStr.Replace("+", "%20")); }
/// <summary> /// 添加cookie值 /// </summary> /// <param name="name">名称</param> /// <param name="value">值</param> /// <param name="decode">是否加密</param> public static void AddCookie(string name, string value, bool encode) { if (encode) { value = EKEncrypt.EncryptDES(value, _encryptkey); } System.Web.HttpCookie cook = System.Web.HttpContext.Current.Request.Cookies[name]; if (cook == null) { cook = new System.Web.HttpCookie(name); if (!EKRequest.GetHost().Contains("192.168.") && !EKRequest.GetHost().Contains("localhost")) { cook.Domain = EKRequest.GetDoMain(); } cook.Value = value; cook.Expires = DateTime.Now.AddMinutes(_minute); System.Web.HttpContext.Current.Response.Cookies.Add(cook); } else { if (!EKRequest.GetHost().Contains("192.168.") && !EKRequest.GetHost().Contains("localhost")) { cook.Domain = EKRequest.GetDoMain(); } cook.Value = value; cook.Expires = DateTime.Now.AddMinutes(_minute); System.Web.HttpContext.Current.Response.Cookies.Add(cook); } }
/// <summary> /// 可更换样式的分页,自动获取参数 /// </summary> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <param name="count"></param> /// <param name="url"></param> /// <param name="css"></param> /// <returns></returns> public static string GetPageUrl(int pageIndex, int pageSize, int count, string url, PageCss css) { string strQuery = EKRequest.RemoveSameParameter("page");//去除参数page return(GetPageUrl(strQuery, pageIndex, pageSize, count, url, css)); }
/// <summary> /// 自定义URL地址多参数分页,样式 class="page1" /// </summary> /// <param name="pageindex">下标页</param> /// <param name="pagesize">页数量</param> /// <param name="count">总数量</param> /// <param name="ruleStr">规则地址,例: /abc/{0}-{1}/{2}/</param> /// <param name="parList">对应规则地址参数,例: "id","classid","page"</param> /// <returns></returns> public static string GetPageUrlPar(int pageindex, int pagesize, int count, string ruleStr, params object[] parList) { string cssname = "page1"; //样式名 int pageCount; //页数 int pageStart; //分页开始 int pageEnd; //分页结束 if (count <= pagesize) { return(""); } if (count % pagesize == 0) { pageCount = count / pagesize; } else { pageCount = count / pagesize + 1; } string str; pageStart = pageindex / 10 == 0 ? 1 : pageindex / 10 * 10; pageEnd = pageindex / 10 == 0 ? 9 : pageindex / 10 * 10 + 9; pageEnd = pageEnd > pageCount ? pageCount : pageEnd; List <string> tempList = new List <string>(); for (int i = 0; i < parList.Length; i++) { if (parList[i] == null) { continue; } if (parList[i].ToString() != "page") { //中文编码 tempList.Add(HttpUtility.UrlEncode(EKRequest.GetString(parList[i].ToString(), ""), Encoding.GetEncoding("GB2312"))); //tempList.Add(System.Web.HttpContext.Current.Server.UrlEncode(EKRequest.GetString(parList[i].ToString(), ""))); } else { tempList.Add("{0}"); } } object[] tempObj = tempList.ToArray(); ruleStr = string.Format(ruleStr, tempObj); //处理url中自定义添加参数 str = "<div class=\"" + cssname.ToString() + "\">"; if (count != 0 && pageindex != 1) { //str += "<span><a href=\"" + string.Format(ruleStr, "1") + "\" title=\"首 页\" ckass='pagefirst'>首 页</a></span>"; } else { //str += "<span><a href=\"javascript:void(null)\" class=\"disabled pagefirst\" title=\"首 页\">首 页</a></span>"; } if (pageindex > 1) { str += "<span><a href=\"" + string.Format(ruleStr, (pageindex - 1)) + "\" title=\"上一页\" class='pageback'>上一页</a></span>"; } else { str += "<span><a href=\"javascript:void(null)\" class=\"disabled pageback\" title=\"上一页\">上一页</a></span>"; } for (int i = pageStart; i <= pageEnd; i++) { if (i == pageindex) { //当前页样式 str += "<span class=\"current\"><a href=\"javascript:void(null)\">" + i.ToString() + "</a></span>"; } else { str += "<span><a href=\"" + string.Format(ruleStr, i.ToString()) + "\">" + i.ToString() + "</a></span>"; } } if (pageindex < pageCount) { str += "<span><a href=\"" + string.Format(ruleStr, (pageindex + 1)) + "\" title=\"下一页\" class='pagenext'>下一页</a></span>"; } else { str += "<span><a href=\"javascript:void(null)\" class=\"disabled pagenext\" title=\"下一页\">下一页</a></span>"; } if (pageindex != pageCount) { //str += "<span><a href=\"" + string.Format(ruleStr, pageCount) + "\" title=\"尾 页\" ckass='pageend'>尾 页</a></span>"; } else { //str += "<span><a href=\"javascript:void(null)\" class=\"disabled pageend\" title=\"尾 页\">尾 页</a></span>"; } str += "</div>"; return(str); }
/// <summary> /// 默认样式分页,自动获取参数,默认当前网页地址. /// </summary> /// <param name="pageindex">当前页</param> /// <param name="pagesize">每页大小</param> /// <param name="count">总数量</param> /// <returns></returns> public static string GetPageUrl(int pageIndex, int pageSize, int count) { string strQuery = EKRequest.RemoveSameParameter("page");//去除参数page return(GetPageUrl(strQuery, pageIndex, pageSize, count, GetPageName(), PageCss.page1)); }
/// <summary> /// 获取内容详细分页,可更换样式的分页,自动获取参数,无首页,尾页 1 2 3 4 5 6 /// </summary> /// <param name="pageindex"></param> /// <param name="pagesize"></param> /// <param name="count"></param> /// <param name="url"></param> /// <param name="css"></param> /// <returns></returns> public static string GetContentPageUrl(int pageindex, int pagesize, int count, string url, PageCss css) { string strQuery = EKRequest.RemoveSameParameter("page"); //去除参数page string cssname = css.ToString(); int pageCount; //页数 int pageStart; //分页开始 int pageEnd; //分页结束 if (count <= pagesize) { return(""); } if (count % pagesize == 0) { pageCount = count / pagesize; } else { pageCount = count / pagesize + 1; } string str; pageStart = pageindex / 10 == 0 ? 1 : pageindex / 10 * 10; pageEnd = pageindex / 10 == 0 ? 9 : pageindex / 10 * 10 + 9; pageEnd = pageEnd > pageCount ? pageCount : pageEnd; if (strQuery.Trim().Length > 0) { strQuery += "&"; } //处理url中自定义添加参数 if (url.Contains("?")) { url += "&"; } else { url += "?"; } str = "<div class=\"" + cssname.ToString() + "\">"; if (pageindex > 1) { str += "<span><a href=\"" + url + strQuery + "page=" + (pageindex - 1) + "\" title=\"上一页\">< 上一页</a></span>"; } else { str += "<span><a href=\"javascript:void(null)\" class=\"disabled\" title=\"上一页\">< 上一页</a></span>"; } for (int i = pageStart; i <= pageEnd; i++) { if (i == pageindex) { //当前页样式 str += "<span class=\"current\"><a href=\"javascript:void(null)\">" + i.ToString() + "</a></span>"; } else { str += "<span><a href=\"" + url + strQuery + "page=" + i.ToString() + "\">" + i.ToString() + "</a></span>"; } } if (pageindex < pageCount) { str += "<span><a href=\"" + url + strQuery + "page=" + (pageindex + 1) + "\" title=\"下一页\">下一页 ></a></span>"; } else { str += "<span><a href=\"javascript:void(null)\" class=\"disabled\" title=\"下一页\">下一页 ></a></span>"; } str += "</div>"; return(str); }
/// <summary> /// 重新定向页面,返回删除参数后的页面地址 /// </summary> /// <param name="par">参数键名,多个用逗号格开</param> /// <returns></returns> public static string RePage(string par) { return(EKRequest.GetPageName() + "?" + EKRequest.RemoveSameParameter(par)); }
/// <summary> /// 删除当前请求中的重复的参数,删除指定参数(多个使用,号格开),并返回删除后参数列表 /// </summary> /// <param name="parame">参数键名,多个用逗号格开</param> /// <returns></returns> public static string RemoveSameParameter(string parameter) { string strParam = ""; bool isExist = false; for (int i = 0; i < HttpContext.Current.Request.QueryString.Count; i++) { for (int j = 0; j < HttpContext.Current.Request.QueryString.Count; j++) { if (HttpContext.Current.Request.QueryString.GetKey(i) == null || HttpContext.Current.Request.QueryString.GetKey(j) == null) { break; } if (i != j && HttpContext.Current.Request.QueryString.GetKey(i).ToLower() == HttpContext.Current.Request.QueryString.GetKey(j).ToLower()) { isExist = true; break; } } //多参数 string[] strAry = parameter.ToLower().Split(','); bool isParam = false; for (int k = 0; k < strAry.Length; k++) { if (HttpContext.Current.Request.QueryString.GetKey(i) == null || strAry[k] == null) { break; } if (HttpContext.Current.Request.QueryString.GetKey(i).ToLower() == strAry[k]) { isParam = true; break; } } //是否存在重复,是否存在 要删除中的一个.为了不重复添加,判断strParam中是否已经存在相同键 "?键=" 或 "&键=" if (!isExist && HttpContext.Current.Request.QueryString.GetKey(i) != null && !isParam) { strParam += "&" + HttpContext.Current.Request.QueryString.GetKey(i) + "=" + EKRequest.StrEncode(HttpContext.Current.Request.QueryString.Get(i), "utf-8"); } } if (strParam.Contains("&")) { strParam = strParam.Remove(0, 1); } return(FilterKey(strParam)); }