我正在制作书店网站。我使用Visual Studio 2010和MS SQL数据库。我有关于书籍的图像。我在数据库中有一个Book表,此表中有一个image列。
我将这些图像(字节数组格式)保存在数据库中。
我在Windows Form Application中测试过,一切正常。我的意思是我可以从数据库检索和保存图像。当我从数据库中检索它们时,我在Book类中保存它们(以System.Drawing.Image格式)。
public Book
{
private int id;
private System.Drawing.Image image;
// name and other .. informations, constructor, get and set methods;
}
public BookLayer
{
// after call this method i can get all informations from database
public static List<Book> getBooks()
{
}
}
我在Asp.net 4 Web Project中使用datalist和objectdatasource。我为objectdatasource写了Book和BookLayer类。我可以在datalist中显示除image之外的所有信息。 因为图像是Book类中的System.Drawing.Image,但是图像是System.ui.WebControls.Image,它位于datalist模板项中。格式不同。我怎样才能做到这一点 ?这样错了吗?请给我任何建议。
答案 0 :(得分:0)
是使用处理程序。您可以执行添加模板字段
<ItemTemplate>
<img border="2" width="150px" src="../images/loading.gif" onload="getpic(this,'<%# Eval("bkid")%>');"/>
</ItemTemplate>
使用以下java脚本 function getpic(img,pid){
try {
img.onload = null;
img.src = '../Getimage.ashx?id=' + pid;
} catch (e) {
alert(e);
}
}
</script>
你的getimage.ashx中的
byte[] imageBytes = ;// ToDOget your byte
Bitmap newBmp = ConvertToBitmap(imageBytes);
if (newBmp != null)
{
newBmp.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
newBmp.Dispose();
}