我从DB中获取了一些文本,我以下列形式绑定到DataList ItemTemplate
:
<asp:LinkButton runat="server" Text='<%#Eval("url")%>' />
从数据库中提取的文本可能很长,我想在上面的eval
作业中将其限制为(最多使用50个字符,然后使用......)。
怎么能在这里完成?
其次,如何在LinkButton
中指定链接,以便在点击它时转到指定的链接,该链接应在新窗口中打开,如taget=_blank
答案 0 :(得分:0)
您可以直接使用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 "";
}
答案 1 :(得分:0)
处理这种情况的一种简单方法是创建一个String类型的“Truncate”扩展,它简单地从它的末尾剥离X个字符。
关于“target = _blank” - 您应该能够使用LinkButton的Attributes属性来完成此任务。
答案 2 :(得分:0)
取决于目标浏览器,使用CSS text-overflow
是在客户端而不是服务器上执行此操作的一种优雅方式(最大化空间;只有那些必须被截断的文本才会被截断,并且它也会被占用帐户简单的标点规则)。
https://developer.mozilla.org/en/CSS/text-overflow
This blog post显示了一个不错的解决方案,因为它寻找注入省略号的空格(而不是盲目截断)。
用于设置LinkButton的目标......
<asp:LinkButton runat="server" target="_blank">
ASP.Net将(通常)忽略它无法识别的属性,并且只是逐字地将它们呈现给客户端。但是,这实际上并没有成功,因为LinkButton
意味着发起回发。您可以改为使用锚标记。