vous pouvez utiliser HTTPHandler retrive les images de la base de données.
<ItemTemplate>
<asp:Image ID="imgPhoto" runat="server"/>
</ItemTemplate>
Si vous avez une image en tant que ItemTemplate dans la grille de données.
Dans l'événement ItemDataBound de la grille de données, appelez le "HttpHandler" pour afficher l'image. Dans le code ci-dessous, je trouve le contrôle de l'image et assigne imageUrl comme chemin de fichier HttpHandler.Je passe également l'ID comme querystring à le fichier HttpHandlerFile.
System.Web.UI.WebControls.Image photoImage = (System.Web.UI.WebControls.Image)e.Item.FindControl("imgPhoto");
photoImage.ImageUrl = "ImageHandler.ashx?PhotoID=" + id.ToString();
Et dans le fichier HttpHandler utiliser LINQ retrive l'image et l'afficher. Comme ce fichier HttpHandler
public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "image/jpeg";
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);
}
}
est mis en correspondance avec le imageURL dans le DataGrid, vous pouvez voir les images affichées dans la grille de données.