最近,在做毕业设计,有一个需要实现的任务是,用Repeater绑定后台数据,然后再前台进行显示。可是,因为标题过长的缘故,在显示的实话,把包它的div给撑爆了,严重的影响了页面的美观。
故从网上找了些资料,整理如下:
这是前台代码:
<div>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%#毕业Degin.getSubString.getSubStr(Convert.ToString(Eval("ArticleContent")),234)%>
</ItemTemplate>
</asp:Repeater>
</div>
顺便说一下,上面这种方式获取后台代码,真实太牛了。那天发现了这个秘密之后,大块人心。呵呵!
好了 不废话了,下面是后台代码:
public class getSubString
{
public static string NoHTML(string Htmlstring)
{
if (Htmlstring.IndexOf(@"") > -1)
{
Htmlstring = HttpContext.Current.Server.HtmlDecode(Htmlstring);
if (Htmlstring.IndexOf(@"&") > -1)
Htmlstring = HttpContext.Current.Server.HtmlDecode(Htmlstring);
}
//删除脚本
Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
//删除HTML
Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);
Htmlstring.Replace("<", "");
Htmlstring.Replace(">", "");
Htmlstring.Replace("\r\n", "");
Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
return Htmlstring;
}
public static string getSubStr(string str, int len)//str是插入的字符串,而len是你需要的长度数
{
string temp = getSubString.NoHTML(str);//去掉特殊的字符。
if (temp.Length > len)
{
return str.Substring(0, len) + "...";//这里,就是网上很多地方,看见一段话后面加上的省略号。
}
else
{
return str;
}
}
}
}