2008-10-14 47 views
1

我有以下几列一个图片表:如何使GridView在ASP.NET 2.0中使用DataSet加载图像?

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

回答

3

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

1

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

这可以找到一个例子here

更新:这个here的更好的例子。

相关问题