需要在asp中显示图标:BoundField

需要在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> 
+0

什么提供数据 - 它是一个SQL查询?什么类型是实际的潜在领域? – 2014-10-29 19:11:25

+0

不知道你可以用BoundField来做到这一点,但是我的答案如下所示,它显示了如何使用TemplateField – 2014-10-29 19:13:38

<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