我正在使用一个中继器控件和一个数据绑定来显示从数据库到我的网站的数据。示例: DataBinder.Eval(Container,"DataItem.title")
有时文本太长,通常我使用substring来显示首选字符串的长度。但是,我如何使用数据绑定来实现这一点?如果文本太长(> 20个字符),我希望将其截断并留下三个点。如何做到这一点?
发布于 2010-07-24 19:03:51
我建议使用一种扩展方法来完成繁重的工作,以使标记尽可能简单:
public static string EvalTrimmed(this RepeaterItem container, string expression, int maxLength)
{
string value = DataBinder.Eval(container, expression) as string;
if ( value != null )
return null;
if (value.Length > maxLength)
value = value.Substring(0,maxLength) + "...";
return value;
}然后在标记中使用它:
<%# Container.EvalTrimmed("DataItem.Title", 20) %>发布于 2010-07-24 18:59:03
如果您使用的是烘焙的ASP.net转发器控件,那么一个解决方案就是处理Repeater.ItemDataBound事件。如果它是另一个第三方中继器控件,那么它可能会暴露一个类似的事件,你可以处理它来达到同样的效果。
然后,您可以将传递给DataBinder.Eval的文本修剪为所需的字符数,并在末尾添加一些省略号。
https://stackoverflow.com/questions/3324784
复制相似问题