가 데이터베이스에서 이미지를 가져 오지하는 HttpHandler를 사용할 수 있습니다.
<ItemTemplate>
<asp:Image ID="imgPhoto" runat="server"/>
</ItemTemplate>
이미지가 DataGrid에 ItemTemplate 인 경우.
DataGrid의 ItemDataBound 이벤트에서 "HttpHandler"를 호출하여 이미지를 표시합니다. 아래 코드에서 이미지 컨트롤을 찾고 HttpHandler 파일 경로로 imageUrl을 지정합니다. 또한 ID를 쿼리 문자열로 전달합니다. HttpHandlerFile.
System.Web.UI.WebControls.Image photoImage = (System.Web.UI.WebControls.Image)e.Item.FindControl("imgPhoto");
photoImage.ImageUrl = "ImageHandler.ashx?PhotoID=" + id.ToString();
그리고 HttpHandler를 파일에
는 이미지를 가져 오지 및 표시 할 Linq를 사용합니다. 이 HttpHandler를 파일이 데이터 그리드에서 이미지 URL에 매핑 될 때
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);
}
}
, 당신은 데이터 그리드에 표시되는 이미지를 볼 수 있습니다.