/**/ /// <summary> /// 返回包含中文字符的字符串长度。 /// C# 的string.Length中中文字只做1位统计,所以要将其转换为2位 /// </summary> /// <param name="strSource">要统计长度的字符串变量</param> /// <returns>字符串长度</returns> public static int GetLength( string strSource) ... { return Encoding.GetEncoding("GB2312").GetBytes(strSource).Length; } /**/ /// <summary> /// 左对齐字符串 /// <remarks> /// 如原始字符串不满足参数<paramref name="length"/>指定的长度则在<paramref name="objectString"/>指定的原始字符串后补'~' /// </remarks> /// </summary> /// <param name="objectString">原始字符串</param> /// <param name="length">左对齐后的字符串长度</param> /// <returns>左对齐后的字符串</returns> /// <example> /// 如调用方式为PadRightString("123",5); /// 则返回值为"123~~" /// </example> /// <exception cref="InvalidTelegraphStringLengthException"> /// 当参数<paramref name="objectString"/>的长度超出参数<paramref name="length"/>指定的值时抛出 /// </exception> public static string PadRightString( string objectString, int length) ... { //原始字符串长度,中文字符按2位计 int objectStringLength = GetLength(objectString); if (objectString == null || objectStringLength > length) ...{ throw new InvalidTelegraphStringLengthException(); } else ...{ //需自动填充的长度 int suffixLength = length - objectStringLength; string sunffix = string.Empty; //不足位数补"~" for (int i = 0; i < suffixLength; i++) ...{ sunffix += "~"; } return objectString + sunffix; } } /**/ /// <summary> /// 获取父页面URL的参数对应值 /// </summary> /// <returns></returns> protected Dictionary < string , string > GetParentQueryString() ... { Dictionary<string, string> dic = new Dictionary<string, string>(); string strParams = Request.UrlReferrer.Query; if (!string.IsNullOrEmpty(strParams)) ...{ string[] queryParams = strParams.Substring(1).Split(new char[] ...{ '&' }); for (int i = 0; i < queryParams.Length; i++) ...{ dic.Add(queryParams[i].Split(new char[] ...{ '=' })[0], queryParams[i].Split(new char[] ...{ '=' })[1]); } } return dic; }