如何根据gridview中数据库的列值显示图像?

时间:2013-08-30 08:51:16

标签: asp.net

我正在使用模板字段根据表格字段中的条件显示图像。

我有字段名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>

2 个答案:

答案 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。