我正在尝试检查重复器中的字符串值,如果有值,则编写一个链接,但似乎无法使其正常工作。 如果myUrl中有值,则要显示链接。
<%if( %> <%#Eval("myURL").ToString().Length > 0 %>
<a title="myTitle" target="_blank" href="<%# Eval("myURL") %>">my link</a>
<% } %>
有人可以帮忙吗?
尝试这段代码!!!
<%#Eval("myURL").ToString().Length > 0 ?
"<a title='myTitle' target='_blank' href='<%# Eval("myURL") %>'>my link</a>":""%>
我个人不喜欢在页面中使用那样的条件逻辑。
有两个选项我认为更好。你可以在重复器中使用一个超链接控件,并根据myURL参数的存在与否来设置可见性。
visibility='<% #Eval("myURL").ToString().Length > 0 %>'
或者您可以在代码后台中编写一个方法,在该方法中使用“myURL”参数进行回调。
例如:
public string CreateURL(string myURL){
if(!string.IsNullOrEmpty(myURL)){
return "<a ... ";
}
return string.Empty;
}
在 ASPX 中调用
<%# CreateURL(Eval("myURL").ToString()) %>
注意:这段代码未经测试,但这是我通常处理此类问题的方式。
<%# string.Format(Eval("Url") != null ? "<a href=\"{0}\">{1}</a>" : "<span>{1}</span>", Eval("Url"), Eval("Text")) %>">
runat="server"
,然后为(新的)服务器端可见属性添加脚本块: <a title="myTitle" target="_blank" href="<%# Eval("myURL") %>" runat="server" visible='<%#Eval("myURL").ToString().Length > 0 %>'>my link</a>
你也可以在代码后台文件中调用你的公共函数:
<%# MyFunction(Eval("myURL").ToString().Length) %>