2013-08-06 2 views
1

Здравствуйте у меня есть список продуктов, это мой HTMLЕсли оператор в HTML

<telerik:RadListBox ID="RadListBox1" runat="server" DataSourceID="LinqDataSourceCategories"  Height="200px" Width="250px" CssClass="ui-droppable" > 
       <EmptyMessageTemplate> 
       No records to display. 
       </EmptyMessageTemplate> 
       <ItemTemplate > 

       <div class="ui-draggable ui-state-default" data-shortid="<%#Eval("ID")%>"> 
       <em>Active : </em><span><%# Eval("LoadProduct") %></span><br /> 
       <em>ProductId: </em><span><%# Eval("ProductId") %></span><br /> 
       </div> 
       </ItemTemplate> 

     </telerik:RadListBox> 

У меня есть вход, который говорят, что если LoadProduct истинным или ложным в клиенте выглядеть следующим образом

<em>Acrive : </em> 
<span>False</span> 
<br> 
<em>ProductId: </em> 
<span>101-01-056-02</span> 
<br> 
<em>ShortID: </em> 
<span class="ShortID" data-shortid="0">0</span> 
<br> 

Я хочу для замены текста с помощью img, мне нужно проверить, <% # Eval ("LoadProduct")%> == true put img scr =/green.png/else img scr =/red.png/что clien будет выглядеть так:

<em>Acrive : </em> 
     <span><img src='green.jpg'/></span> 

<br> 
     <em>ProductId: </em> 
     <span>101-01-056-02</span> 
     <br> 
     <em>ShortID: </em> 
     <span class="ShortID" data-shortid="0">0</span> 
     <br> 

Посев, как это можно сделать? Чтобы добавить if инструкцию в HTML,

или поймать событие, которое создает все элементы и проверяет, загружает ли LoadProduct == true и добавляет html к элементу?

+2

Это, как представляется, asp.net вопрос. Добавьте его в теги. – MMM

ответ

2

попробовать это

<em>Active : </em><span><%# Convert.ToBoolean(Eval("LoadProduct")) ? "<img src='green.jpg'/>" : "<img src='red.jpg'/>"%></span><br /> 
1
<% 
    if((bool)Eval("LoadProduct") == true) 
    { 
     Response.Write("src='green.jpg'"); 
    } 
    else Response.Write("src='red.jpg'"); 
%> 
2

Давайте думать об этом, я не очень нравится идея серверных условных в переднем конце. Код-сзади - это одно, а передняя сторона - другая. Не смешать его, если это не неизбежно. Чистейший способ получить, что бы установить переменный (или функцию, в вашем случае) в коде-сзади и просто, чтобы показать его в переднем конце, как:

Code behind:

protected string GreenOrRed(bool isLoadProduct) 
{ 
    return isLoadProduct ? "green" : "red"; 
} 

(функция или переменная должна быть защищена, по крайней мере, с тем, чтобы быть доступным в ASPX странице, потому что страница ASPX является производной от базового класса aspx.cs)

front-end:

<span><img src='<%# GreenOrRed((bool)Eval("LoadProduct")) %>.jpg'/></span> 

После этого Remeber добавить

this.DataBind(); 

в вашей Page_Load() функции.

Позвольте кодовому решению решить, пусть интерфейс только покажет результат.

1

Попробуйте

<img src='<%# (bool)Eval("LoadProduct") ? "green.jpg" : "red.jpg" %>'/>