вы можете использовать Httphandler для извлечения изображений из базы данных.
<ItemTemplate>
<asp:Image ID="imgPhoto" runat="server"/>
</ItemTemplate>
Если у вас есть изображение в качестве шаблона элемента в таблице данных.
В событии ItemDataBound сетки данных вызовите «HttpHandler» для отображения изображения. В приведенном ниже коде я нахожу элемент управления изображением и назначаю imageUrl в качестве пути к файлу HttpHandler. Я также передаю идентификатор в виде строки запроса HttpHandlerFile.
</p>
<pre><code> System.Web.UI.WebControls.Image photoImage = (System.Web.UI.WebControls.Image)e.Item.FindControl("imgPhoto");
photoImage.ImageUrl = "ImageHandler.ashx?PhotoID=" + id.ToString();
А в файле HttpHandler используйте Linq, чтобы получить изображение и отобразить его.
public void ProcessRequest (HttpContext context)<br/>
{<br/>
context.Response.ContentType = "image/jpeg";</p>
<pre><code> int photoId = -1;
//Check the query string.
if (context.Request.QueryString["PhotoId"] != null && context.Request.QueryString["PhotoId"] != "")
{
photoId = Convert.ToInt32(context.Request.QueryString["PhotoID"]);
}
if (photoId != -1)
{
MovieDataContext db = new MovieDataContext();
//Get the movie record based on the ID
MovieTable movie = db.MovieTables.First(m => m.ID == photoId);
System.Data.Linq.Binary fileBinary = movie.Photo;
byte[] fileByte = fileBinary.ToArray();
//displays the Image.
context.Response.BinaryWrite(fileByte);
}
}
Поскольку этот файл HttpHandler сопоставлен с imageURL в сетке данных, вы можете видеть изображения, отображаемые в сетке данных.