2012-05-02 162 views
-2

我有一个数据库表中的图像列,我想在GridView列中显示这个图像,我该如何实现?如何在GridView中显示图像?

+0

你有任何msdn链接的问题“GridView示例为ASP.NET 2.0:在GridView列中显示图像”http://msdn.microsoft.com/en-us/library/aa479350.aspx – volody

+0

我遇到相同的链接。此外,这里有一个类似的[SO帖子](http://stackoverflow.com/questions/656464/how-to-dynamically-show-images-in-a-asp-net-gridview)。总是让社区知道你到目前为止所尝试过的。 –

+0

@volody - 此链接取决于数据库图像字段是字符串,但在我的数据库中是varbinary(MAX)。 – Gandhi

回答

0

类似于@JaneDoe建议,你”您需要指定ImageUrl,但是当您绑定时,您需要将ImageUrl属性设置为指向一个HttpHandler,并使用主键作为查询字符串参数。

例如<asp:Image runat="server" ImageUrl="/myImageHandler.axd?pk=<%# Eval("PrimaryKey") %>"/>

然后,您需要配置HttpHandler以发送image/jpeg或任何正在存储的图像类型的响应,然后从查询字符串中读取基于传入的PK的数据库中的varbinary数据并将该数据输出到响应流。

+0

是的,我通过处理程序完成了它,对于你的建议。 – Gandhi

1

假设你保存在数据库中的图像作为字符串(路径图)你可以把一个ItemTemplate在你的GridView是这样的:

<asp:TemplateField> 
    <ItemTemplate> 
    <asp:image ID="image" runat="server" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "imagePath") %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

我不明白“imagePath”,来自数据库的图像。 – Gandhi

+0

您是否将图像作为字符串存储在数据库中?如果是这样的话:您存储图像的列的名称是什么?另外,你如何将你的数据绑定到gridview? – Thousand

+1

+1 @Gandhi - ImagePath是图像的路径。它可以被称为任何它只是一个列的名称 - 使用你拥有的。 – JonH