/**/ /// <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;
}