在网页上我们经常会看到在列表栏里,有的标题或文章只显示一行后面会用省略号代替,即实现下图的效果:
将字符串截取指定长度后,用自定义的符号显示代表剩余内容:
/// <summary>
/// 将指定字符串按长度进行剪切
/// </summary>
/// <param name="oldStr">需要截断的字符串</param>
/// <param name="maxLength">字符串的最大长度</param>
/// <param name="endWith">超过长度的后缀</param>
/// <returns>如果超过长度,返回截断后的新字符串加上后缀,否则,返回原字符串</returns>
public static string StringTruncat(string oldStr, int maxLength, string endWith)
{
if (String.IsNullOrEmpty(oldStr))
//throw new NullReferenceException("原字符串不能为空");
return oldStr + endWith;
if (maxLength <1)
throw new Exception ("返回的字符串长度必须大于[0]")
if(oldStr .Length >maxLength )
{
string strTmp=oldStr .Substring (0,maxLength );
if (string.IsNullOrEmpty (endWith ))
return strTmp ;
else
return strTmp +endWith ;
}
return oldStr ;
}
<asp:TemplateField HeaderText="新闻标题">
<ItemTemplate>
<a href='newscontent.aspx?newsid=<%#Eval ("id") %>>' target ="_blank" title='<%#Eval("title") %>'><%# StringTruncat( Eval("title").ToString() ,20,"...") %></a>
</ItemTemplate>
</asp:TemplateField>