限制数据库中为链接按钮指定的文本长度
本文关键字:文本 按钮 数据库 链接 | 更新日期: 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
旨在启动回发。您可以改为使用定位标记。