Asp.net 需要在asp:BoundField中显示图标

Asp.net 需要在asp:BoundField中显示图标,asp.net,Asp.net,当前,“我的字段”绑定到布尔值,并将显示文本:“真”或“假” 如果字段为true,我希望此字段显示图标,否则不显示任何内容 我该怎么做 <asp:BoundField DataField="IsLocked" HeaderText="Locked" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" SortExpression="IsLocked" It

当前,“我的字段”绑定到布尔值,并将显示文本:“真”或“假”

如果字段为true,我希望此字段显示图标,否则不显示任何内容

我该怎么做

 <asp:BoundField DataField="IsLocked" HeaderText="Locked" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" 
                        SortExpression="IsLocked" ItemStyle-Width="4%" ItemStyle-Wrap="false" HeaderStyle-Wrap="false"> </asp:BoundField>   

您可以通过itemtemplate直接使用它。这将始终具有图像,如果
IsLocked
为false,它将隐藏图像

<asp:TemplateField>
    <ItemTemplate>
        <asp:Image ID="mimg" runat="server" ImageUrl="icon.jpg" Visible='<%# Eval("IsLocked").Equals(true) ? "True": "False" %>' />
    </ItemTemplate>
</asp:TemplateField>


用实际图像路径替换
icon.jpg

什么提供了数据-是SQL查询?实际的底层字段是什么类型的?不确定您是否可以使用BoundField来执行此操作,但我下面的回答显示了如何使用TemplateField来执行此操作
<asp:GridView id="gvLocker" OnRowDataBound="gvLocker_RowDataBound" runat="server">
    <Columns>
        <asp:TemplateField HeaderText="Locked">
            <ItemTemplate>
                <asp:Image ID="imgLocked" ImageUrl="/images/locked.png" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
    protected void gvLocker_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            var imgLocked = (Image) e.Row.FindControl("imgLocked");

            imgLocked.Visible = (bool) DataBinder.Eval(e.Row.DataItem, "IsLocked");
        }
    }