0

我正在尝试根据数据库字段的特定值创建超链接,它是针对新闻页面的,有些新闻的内容很长,在这种情况下我想创建超链接,但如果长度小则不需要链接,我使用的代码:

<asp:Label ID="lblContent" runat="server" 
                        Text='<%# string.Format("{0}",Eval("New_Content").ToString().Length>150? <a href> Eval("New_Content").ToString().PadRight(150).Substring(0,150).TrimEnd() + " ..." </a>:Eval("New_Content")) %>' >
                    </asp:Label>

但是有错误,我可以帮忙吗?

4

3 回答 3

3

我正在尝试创建超链接

那么为什么不使用<asp:HyperLink />控件呢?

也不要使用字符串Substring()来减少文本的长度并...在末尾添加,只需使用 css。

例如

<asp:HyperLink ID="hlContent" runat="server" CssClass="trimme" 
                Text='<%# Eval("New_Content").ToString() %>'></asp:HyperLink>

然后添加一个名为的css类trimme

a.trimme{
  display: block;  
  width: 150px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

看看这个例子

于 2013-08-23T16:04:12.547 回答
0

您拥有的代码几乎是正确的,只是您似乎缺少一些引号:

<asp:Label ID="lblContent" runat="server" 
    Text='<%# String.Format("{0}", Eval("New_Content").ToString().Length > 150 ? "<a href='" + Eval("Link_Href") + Eval("New_Content").ToString().PadRight(150).Substring(0, 150).TrimEnd() + "'>...</a>" : Eval("New_Content")) %>' >
</asp:Label>

ASP 标签中的文本是原始输出到响应流,因此您可以只编写标准 HTML,但在构建新字符串对象时它确实需要用引号引起来。

于 2013-08-23T15:53:27.693 回答
0

我使用 LastIndexOf() 得到了解决方案:

<asp:Label ID="lblContent" runat="server" CssClass="nostyle" 
                        Text='<%# string.Format("{0}",Eval("New_Content").ToString().Length>150?string.Format("<a href=news.aspx?page=3#{0}>{1}</a>",Eval("New_Id"),string.Format("{0} {1}",Eval("New_Content").ToString().PadRight(150).Substring(0,Eval("New_Content").ToString().PadRight(150).Substring(0,150).LastIndexOf(" ")>-1 ? Eval("New_Content").ToString().PadRight(150).Substring(0,150).LastIndexOf(" "): 150).ToString(), " ...")):Eval("New_Content")) %>' >
                    </asp:Label>

谢谢大家,给了我好主意

于 2013-08-26T14:03:58.637 回答