2010-12-02 70 views
1

我有一個gridview,它顯示所有鏈接到一個sql語句的行和列......並且所有工作正常。根據列的值在gridview中顯示圖像

我想包括一個新的列,根據列的值是什麼顯示圖像。如果該列有一個值 - 它將顯示一個圖像。如果列值爲空,則不顯示圖像。

我的SQL是這樣的:

SELECT c.call_id, title, a.call_id as b_attach 
FROM calls c 
LEFT JOIN attachments a ON c.call_id = a.call_id 
GROUP BY c.call_id,title,description, a.call_id 

什麼從這個SQL的回報是:

CALL_ID | 標題 | b_attach
1235 |標題在這裏| 1235
1382 |另一個標題| NULL

所以,如果有什麼東西在b_attach - diplay圖像中的GridView列,否則就什麼都不顯示在GridView中列

我的GridView:

     <asp:HyperLinkField SortExpression="call_id" HeaderText="Call id" DataTextField="call_id" 
          DataNavigateUrlFields="call_id" DataNavigateUrlFormatString="showcall.aspx?id={0}" /> 
         <asp:HyperLinkField SortExpression="Title" HeaderText="Title" DataTextField="title" 
          DataNavigateUrlFields="call_id" DataNavigateUrlFormatString="showcall.aspx?id={0}" /> 

        </Columns> 

如何做到這一點任何想法?

回答

1

您可以使用TemplateField,並且,它裏面是這樣的:

<asp:Image runat="server" id="myImg" ImageUrl='<%# GetImage(DataBinder.Eval(Container.DataItem, "b_attach")) >%' visible='<%# null != DataBinder.Eval(Container.DataItem, "b_attach") %> /> 
+0

確定這肯定讓我在正確的軌道上。它不能正確工作(與null和system.dbnull有關),我似乎無法修復它。我返回時將b_attach更改爲布爾(位),然後可以省略空白部分。所以剛剛結束了:Visible ='<%#DataBinder.Eval(Container.DataItem,「b_attach」)%>'.Image url只是一條直線路徑,不需要代碼。謝謝! – thegunner 2010-12-02 14:08:15