根据你显示的字号和字体,和要显示的字符串的长度,可以得出大概的长度。或者这样的需求根本没有必要,你只要在后台代码中,修改超过指定长度的字符串后面的字符为…后,再输出到前台即可
因为字体大小所占的像素也不一样,所以一般的做法就是截取固定的字符并加“...”。
/// <summary>
/// 截取字符串指定的长度并加上省略号 以字节形式计算
/// </summary>
/// <param name="inputString">字符串</param>
/// <param name="len">截取长度,以字节形式计算</param>
/// <returns></returns>
public static string CutStrMit(string inputString, int len)
{
ASCIIEncoding ascii = new ASCIIEncoding();
int tempLen = 0;
string tempString = "";
byte[] s = ascii.GetBytes(inputString);
for (int i = 0; i < s.Length; i++)
{
if ((int)s[i] == 63)
{
tempLen += 2;
}
else
{
tempLen += 1;
}
try
{
tempString += inputString.Substring(i, 1);
}
catch
{
break;
}
if (tempLen > len)
break;
}
//如果截过则加上半个省略号
byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);
if (mybyte.Length > len)
tempString += "...";
return tempString;
}
是这样子的,如果说你这个问题时web页面上在一个标签中加入内容,内容如果超过指定的长度就用...来代替,这个一般来说使用css属性就可以了,属性是 text-overflow:ellipsis这样子,你可以参考http://www.div-css.com/html/standard/tech98926118542968.html 此文章的实现
不过说实在话,用程序来实现字符长度计算然后加...这个太得不偿失了.
如果要在显示页面中长度超过一个长度后省略后面字符加“...”,
直接在页面绑定处添加如下代码:
<%#Eval("字段").ToString().lenght>10?Eval("字段").ToString().substring(0,10):Eval("字段")%>