需要在asp中显示图标:BoundField
问题描述:
目前,我的字段绑定到一个布尔值,并将显示文本:“true”或“false”。需要在asp中显示图标:BoundField
我希望此字段在字段为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>
答
<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");
}
}
答
你可以直接在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
。
什么提供数据 - 它是一个SQL查询?什么类型是实际的潜在领域? – 2014-10-29 19:11:25
不知道你可以用BoundField来做到这一点,但是我的答案如下所示,它显示了如何使用TemplateField – 2014-10-29 19:13:38