Ответ 1
попробуйте этот код!!!
<%#Eval("myURL").ToString().Length > 0 ?
"<a title='myTitle' target='_blank' href='<%# Eval("myURL") %>'>my link</a>":""%>
Я пытаюсь проверить строковое значение внутри ретранслятора, и если у него есть значение, тогда напишите ссылку, но не можете заставить ее работать. Если в 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()) %>
NB это непроверенный код, но это то, как я обычно делаю такие вещи.
Я бы использовал String.Format и включил HTML как часть строки. По общему признанию, это не самая аккуратная часть кода, когда-либо написанная, но, на мой взгляд, это лучший вариант:
Например, ниже будет выводиться якорный тэг, если свойство Url существует, иначе оно выведет диапазон.
<%# string.Format(Eval("Url") != null ? "<a href=\"{0}\">{1}</a>" : "<span>{1}</span>", Eval("Url"), Eval("Text")) %>">
Попробуйте добавить runat="server"
, а затем добавьте блок script для свойства новой видимости на стороне сервера:
<a title="myTitle" target="_blank" href="<%# Eval("myURL") %>" runat="server" visible='<%#Eval("myURL").ToString().Length > 0 %>'>my link</a>
это поможет
Как запустить оператор if в aspx?
http://forums.asp.net/t/1254412.aspx/1
http://forums.asp.net/t/1161705.aspx
Вы также можете вызвать свою публичную функцию внутри кода за файлом:
<%# MyFunction(Eval("myURL").ToString().Length) %>