根据列的值在gridview中显示图像

时间:2010-12-02 12:18:25

标签: asp.net gridview

我有一个gridview,它显示所有链接到sql语句的行和列...并且一切正常。

我想要添加一个新列,根据列的值显示图像。如果列具有值 - 它将显示图像。如果列值为空,则不显示任何图像。

我的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中存在某些内容 - gridview列中的diplay图像,则在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 个答案:

答案 0 :(得分:1)

您可以使用TemplateField,并在其中使用以下内容:

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