限制数据库中为链接按钮指定的文本长度

本文关键字:文本 按钮 数据库 链接 | 更新日期: 2023-09-27 18:27:00

我从数据库中提取了一些文本,我将以以下形式将其绑定到DataList ItemTemplate

<asp:LinkButton runat="server" Text='<%#Eval("url")%>' />

从DB中提取的文本可能很长,我想在上面的eval赋值中将其限制为(假设最多50个字符,后面加一个…)。

这里怎么能做到这一点?其次,我如何在LinkButton中指定链接,以便单击它时,它会转到指定的,链接应该在新窗口中打开,如taget=_blank

限制数据库中为链接按钮指定的文本长度

您可以直接使用a标签

<a href='<%#Eval("url")%>' taget=_blank> <%# BindText(Eval("url"))%></a>

编码背后:

public string BindText(obj url)
{
 if(url!=null) {return (url.ToString().length > 50) ? url.ToString().Substring(0,50) + '...': url.ToString() ;}
 return "";
}

处理这一问题的一个简单方法是创建一个String类型的"Truncate"扩展,它只需从末尾去掉X个字符。

关于"target=_blank"-您应该能够使用LinkButton的Attributes属性来完成此操作。

根据目标浏览器的不同,在客户端而不是服务器上使用CSS text-overflow是一种很好的方法(最大限度地增加空间;只有必须截断的文本才会被截断,而且它还考虑了简单的标点规则)。

https://developer.mozilla.org/en/CSS/text-overflow

这篇博客文章展示了一个不错的解决方案,它寻找空白来注入省略号(而不是盲目截断)。

用于设置LinkButton的目标。。。

<asp:LinkButton runat="server" target="_blank">

ASP.Net(通常)会忽略它无法识别的属性,只将它们逐字逐句地呈现给客户端。然而,这实际上并不起作用,因为LinkButton旨在启动回发。您可以改为使用定位标记。