你好,我的产品清单是我的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>
我有Active就是说LoadProduct是true还是false 在客户端看起来像这样
<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替换文本,我需要检查&lt;%#Eval(“LoadProduct”)%&gt; == 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附加到项目?
答案 0 :(得分:2)
试试这个
<em>Active : </em><span><%# Convert.ToBoolean(Eval("LoadProduct")) ? "<img src='green.jpg'/>" : "<img src='red.jpg'/>"%></span><br />
答案 1 :(得分: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>
之后,记得添加
this.DataBind();
在Page_Load()
函数中。
让代码隐藏决定,让前端只显示结果。
答案 2 :(得分:1)
<%
if((bool)Eval("LoadProduct") == true)
{
Response.Write("src='green.jpg'");
}
else Response.Write("src='red.jpg'");
%>
答案 3 :(得分:1)
试试这个
<img src='<%# (bool)Eval("LoadProduct") ? "green.jpg" : "red.jpg" %>'/>