如何在ASP.NET 2.0中使用DataSet使GridView加载图像?

时间:2008-10-14 02:20:56

标签: asp.net gridview image

我有一张图片表,其中包含以下列:

PICTURE_ID int IDENTITY(1000,1) NOT NULL,
CATEGORY_ID int NOT NULL,
IMGDATA image NOT NULL,
CAPTION1 text COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
MIME_TYPE nchar(20) NOT NULL DEFAULT ('image/jpeg'),
IMGTHDATA image NOT NULL

在我的代码隐藏中,我有这个:

string tableName = "CATPICS";
SqlConnection dbConnection = new SqlConnection(connStr);
SqlDataAdapter daCatPics = new SqlDataAdapter("SELECT TOP(3) * FROM CATEGORY_PICTURES", dbConnection);
DataSet dsPics = new DataSet();
daCatPics.Fill(dsPics, tableName);

gvCatPics.DataSource = dsPics;
gvCatPics.DataMember = tableName;
gvCatPics.DataBind();

关于标记,我几乎有:

<asp:GridView ID="gvCatPics" runat="server"></asp:GridView>

然而,当代码执行时,它只是忽略两个图像列(IMGDATA和IMGTHDATA)。由于某种原因,它无法识别它们是图像列。有没有人知道渲染图像的最简单方法?

2 个答案:

答案 0 :(得分:3)

您可以创建一个页面,将图像作为流返回,并从图像列(或模板列中的IMG标记)引用该页面;见GridViewDisplayBlob.aspx

答案 1 :(得分:1)

没有真正简单的方法可以做到这一点。基本上你需要创建一个处理程序来显示图像。然后在您的网格中,您将创建一个img标记,其URL指向您的图像处理程序。

可以找到here的一个例子。

更新:更好的例子here