因为中文和英文所占位置不同,一个能显示5个中文的位置应该能显示10个英文,
这个字符串操作函数很好用,是CSDN里写的。
//截取字符串public static string GetSubString(string mText, int startIndex, int byteCount){if (byteCount < 1) return string.Empty;if (System.Text.Encoding.Default.GetByteCount(mText) <= byteCount){return mText;}else{if (startIndex == 0){byte[] txtBytes = System.Text.Encoding.Default.GetBytes(mText);byte[] newBytes = new byte[byteCount];for (int i = 0; i < byteCount; i++)newBytes[i] = txtBytes[i];return System.Text.Encoding.Default.GetString(newBytes);}else{string tmp = GetSubString(mText, 0, startIndex - 1);mText = mText.Substring(tmp.Length);return GetSubString(mText, 0, byteCount);}}}
public static string GetSubString(string mText, int startIndex){return GetSubString(mText, startIndex, System.Text.Encoding.Default.GetByteCount(mText) - startIndex + 1);}
使用方法:
在数据绑定的地方输入这个,代替原来的<% Eval("text") %>
<%# GetSubString(DataBinder.Eval(Container.DataItem,"text").ToString(),0,10)%>