我正在使用模板字段根据表格字段中的条件显示图像。
我有字段名is_selected我用来存储1或0值
如果是1,则显示“〜/ images / tick.png”图像,否则在gridview中显示“〜/ images / cross.png”
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" Width="980">
<Columns>
<asp:TemplateField HeaderText="Selected">
<ItemTemplate>
<asp:Image ID="Image4" runat="server" ImageUrl='<%# (Boolean.Parse(Eval("is_selected").ToString())=="1" ? "~/images/tick.png" : "~/images/cross.png" %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
答案 0 :(得分:0)
如果你有runat="server"
你不能使用eny逻辑,除非你在你的代码隐藏文件中这样做。将其更改为img
<img ID="Image4" src='<%# (Eval("is_selected").ToString()=="1" ? "~/images/tick.png" : "~/images/cross.png" %>' />
如果你想在后面编写代码:
将OnItemDataBound="GridView2_ItemDataBound"
添加到<asp:GridView>
将此添加到codeBehind
public void GridView2_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item)
{
NameOfTheObject item = (NameOfTheObject)e.Item.DataItem;
Image image = (HiddenField)e.Item.FindControl("Image4");
image.ImageUrl= item.is_selected==1 ? "~/images/tick.png" : "~/images/cross.png";
}
}
答案 1 :(得分:0)
而不是这个,您可以在数据库端以及此查询中执行此操作
选择案例is_selected 1,然后'〜/ images / tick.png'其他'〜/ images / cross.png'结束作为选择[table]
尝试此操作,这会将图像名称作为字符串返回,您可以直接将其绑定到GridView。