2014-10-29 72 views
1

目前,我的字段綁定到一個布爾值,並將顯示文本:「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

回答

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"); 
     } 
    } 
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