首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Databinder.Eval和子串

Databinder.Eval和子串
EN

Stack Overflow用户
提问于 2010-07-24 18:51:23
回答 2查看 4.2K关注 0票数 3

我正在使用一个中继器控件和一个数据绑定来显示从数据库到我的网站的数据。示例: DataBinder.Eval(Container,"DataItem.title")

有时文本太长,通常我使用substring来显示首选字符串的长度。但是,我如何使用数据绑定来实现这一点?如果文本太长(> 20个字符),我希望将其截断并留下三个点。如何做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-24 19:03:51

我建议使用一种扩展方法来完成繁重的工作,以使标记尽可能简单:

代码语言:javascript
复制
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;
}

然后在标记中使用它:

代码语言:javascript
复制
<%# Container.EvalTrimmed("DataItem.Title", 20) %>
票数 2
EN

Stack Overflow用户

发布于 2010-07-24 18:59:03

如果您使用的是烘焙的ASP.net转发器控件,那么一个解决方案就是处理Repeater.ItemDataBound事件。如果它是另一个第三方中继器控件,那么它可能会暴露一个类似的事件,你可以处理它来达到同样的效果。

然后,您可以将传递给DataBinder.Eval的文本修剪为所需的字符数,并在末尾添加一些省略号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3324784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档