Подтвердить что ты не робот

#Eval если оператор в репитере

Я пытаюсь проверить строковое значение внутри ретранслятора, и если у него есть значение, тогда напишите ссылку, но не можете заставить ее работать. Если в myUrl есть значение, я хочу отобразить ссылку.

 <%if( %> <%#Eval("myURL").ToString().Length > 0 %>
       <a  title="myTitle" target="_blank" href="<%# Eval("myURL") %>">my link</a>                  
 <% } %>

Кто-нибудь может помочь?

4b9b3361

Ответ 1

попробуйте этот код!!!

<%#Eval("myURL").ToString().Length > 0 ?
"<a  title='myTitle' target='_blank' href='<%# Eval("myURL") %>'>my link</a>":""%>

Ответ 2

Я лично ненавижу использовать условную логику, как на странице.

Есть два варианта, которые, я думаю, лучше. У вас может быть управление гиперссылкой в ​​ретрансляторе - и установите видимость в зависимости от того, есть ли параметр 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 это непроверенный код, но это то, как я обычно делаю такие вещи.

Ответ 3

Я бы использовал String.Format и включил HTML как часть строки. По общему признанию, это не самая аккуратная часть кода, когда-либо написанная, но, на мой взгляд, это лучший вариант:

Например, ниже будет выводиться якорный тэг, если свойство Url существует, иначе оно выведет диапазон.

<%# string.Format(Eval("Url") != null ? "<a href=\"{0}\">{1}</a>" : "<span>{1}</span>", Eval("Url"), Eval("Text")) %>">

Ответ 4

Попробуйте добавить runat="server", а затем добавьте блок script для свойства новой видимости на стороне сервера:

 <a  title="myTitle" target="_blank" href="<%# Eval("myURL") %>" runat="server" visible='<%#Eval("myURL").ToString().Length > 0 %>'>my link</a>

Ответ 6

Вы также можете вызвать свою публичную функцию внутри кода за файлом:

<%# MyFunction(Eval("myURL").ToString().Length) %>