Как заставить GridView загружать изображения с помощью DataSet в ASP.NET 2.0? - PullRequest
1 голос
/ 14 октября 2008

У меня есть таблица изображений, которая имеет следующие столбцы:

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 ]

3 голосов
/ 14 октября 2008

вы можете создать страницу, которая возвращает изображение в виде потока и ссылаться на эту страницу из столбца изображения (или тега IMG в столбце шаблона); см GridViewDisplayBlob.aspx

1 голос
/ 14 октября 2008

Нет простого способа сделать это. В основном вам нужно создать обработчик для отображения изображений. Затем в вашей сетке вы создадите тег img с URL-адресом, указывающим на ваш обработчик изображения.

Пример этого можно найти здесь .

Обновление: Намного лучший пример этого здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...