0

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

我有字段名称 is_selected 我曾经存储 1 或 0 值

如果为 1,则在 gridview 中显示“~/images/tick.png”图像,否则显示“~/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>
4

2 回答 2

0

取而代之的是,您也可以通过此查询在数据库端执行此操作

select case is_selected when 1 then '~/images/tick.png' else '~/images/cross.png' end as selectimg from [table]

试试这个,这会将图像名称作为字符串返回,您可以直接将其绑定到您的 GridView。

于 2013-08-30T09:15:12.977 回答
0

如果你有runat="server"你不能使用任何逻辑,除非你在你的代码隐藏文件中这样做。将其更改为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";
     }
 }
于 2013-08-30T08:56:03.910 回答