1

我有一个包含以下列的图片表:

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)。由于某种原因,它无法识别它们是图像列。有谁知道让它渲染图像的最简单方法?

4

2 回答 2

3

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

于 2008-10-14T02:29:26.090 回答
1

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

这方面的一个例子可以在这里找到。

更新:这里有更好的例子。

于 2008-10-14T02:27:07.280 回答