1
/// <summary>
2
/// 返回包含中文字符的字符串长度。
3
/// C# 的string.Length中中文字只做1位统计,所以要将其转换为2位
4
/// </summary>
5
/// <param name="strSource">要统计长度的字符串变量</param>
6
/// <returns>字符串长度</returns>
7
public static int GetLength(string strSource)
8
{
9
return Encoding.GetEncoding("GB2312").GetBytes(strSource).Length;
10
}
11
/// <summary>
12
/// 左对齐字符串
13
/// <remarks>
14
/// 如原始字符串不满足参数<paramref name="length"/>指定的长度则在<paramref name="objectString"/>指定的原始字符串后补'~'
15
/// </remarks>
16
/// </summary>
17
/// <param name="objectString">原始字符串</param>
18
/// <param name="length">左对齐后的字符串长度</param>
19
/// <returns>左对齐后的字符串</returns>
20
/// <example>
21
/// 如调用方式为PadRightString("123",5);
22
/// 则返回值为"123~~"
23
/// </example>
24
/// <exception cref="InvalidTelegraphStringLengthException">
25
/// 当参数<paramref name="objectString"/>的长度超出参数<paramref name="length"/>指定的值时抛出
26
/// </exception>
27
public static string PadRightString(string objectString, int length)
28
{
29
//原始字符串长度,中文字符按2位计
30
int objectStringLength = GetLength(objectString);
31
if (objectString == null || objectStringLength > length)
32
{
33
throw new InvalidTelegraphStringLengthException();
34
}
35
else
36
{
37
//需自动填充的长度
38
int suffixLength = length - objectStringLength;
39
string sunffix = string.Empty;
40
//不足位数补"~"
41
for (int i = 0; i < suffixLength; i++)
42
{
43
sunffix += "~";
44
}
45
return objectString + sunffix;
46
}
47
}
48
/// <summary>
49
/// 获取父页面URL的参数对应值
50
/// </summary>
51
/// <returns></returns>
52
protected Dictionary<string, string> GetParentQueryString()
53
{
54
Dictionary<string, string> dic = new Dictionary<string, string>();
55
string strParams = Request.UrlReferrer.Query;
56
if (!string.IsNullOrEmpty(strParams))
57
{
58
string[] queryParams = strParams.Substring(1).Split(new char[] { '&' });
59
for (int i = 0; i < queryParams.Length; i++)
60
{
61
dic.Add(queryParams[i].Split(new char[] { '=' })[0], queryParams[i].Split(new char[] { '=' })[1]);
62
}
63
}
64
return dic;
65
}
/// <summary>2
/// 返回包含中文字符的字符串长度。3
/// C# 的string.Length中中文字只做1位统计,所以要将其转换为2位4
/// </summary> 5
/// <param name="strSource">要统计长度的字符串变量</param>6
/// <returns>字符串长度</returns>7
public static int GetLength(string strSource)8
{9
return Encoding.GetEncoding("GB2312").GetBytes(strSource).Length;10
} 11
/// <summary>12
/// 左对齐字符串13
/// <remarks>14
/// 如原始字符串不满足参数<paramref name="length"/>指定的长度则在<paramref name="objectString"/>指定的原始字符串后补'~'15
/// </remarks>16
/// </summary>17
/// <param name="objectString">原始字符串</param>18
/// <param name="length">左对齐后的字符串长度</param>19
/// <returns>左对齐后的字符串</returns>20
/// <example>21
/// 如调用方式为PadRightString("123",5);22
/// 则返回值为"123~~"23
/// </example>24
/// <exception cref="InvalidTelegraphStringLengthException">25
/// 当参数<paramref name="objectString"/>的长度超出参数<paramref name="length"/>指定的值时抛出26
/// </exception>27
public static string PadRightString(string objectString, int length)28
{29
//原始字符串长度,中文字符按2位计30
int objectStringLength = GetLength(objectString);31
if (objectString == null || objectStringLength > length)32
{33
throw new InvalidTelegraphStringLengthException();34
}35
else36
{37
//需自动填充的长度38
int suffixLength = length - objectStringLength;39
string sunffix = string.Empty;40
//不足位数补"~"41
for (int i = 0; i < suffixLength; i++)42
{43
sunffix += "~";44
}45
return objectString + sunffix;46
}47
} 48
/// <summary>49
/// 获取父页面URL的参数对应值50
/// </summary>51
/// <returns></returns>52
protected Dictionary<string, string> GetParentQueryString()53
{54
Dictionary<string, string> dic = new Dictionary<string, string>();55
string strParams = Request.UrlReferrer.Query;56
if (!string.IsNullOrEmpty(strParams))57
{58
string[] queryParams = strParams.Substring(1).Split(new char[] { '&' });59
for (int i = 0; i < queryParams.Length; i++)60
{61
dic.Add(queryParams[i].Split(new char[] { '=' })[0], queryParams[i].Split(new char[] { '=' })[1]);62
} 63
}64
return dic;65
} 
