目前,我的字段绑定到布尔值并显示文本:" true"或" false"。
如果字段为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>
答案 0 :(得分:2)
您可以使用itemtemplate直接使用它。这将始终具有图像,如果IsLocked
为假,则会隐藏图像。
<asp:TemplateField>
<ItemTemplate>
<asp:Image ID="mimg" runat="server" ImageUrl="icon.jpg" Visible='<%# Eval("IsLocked").Equals(true) ? "True": "False" %>' />
</ItemTemplate>
</asp:TemplateField>
将icon.jpg
替换为实际图像路径。
答案 1 :(得分:1)
<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");
}
}