我在DevExpress Gridview Concepts工作。我是新来的。我的要求是,我应该在gridview中显示图像。将有多个图像,如果是这样,它应该在第二行绑定。我将从数据库中获取图像路径。
请提供示例代码。我搜索了很多谷歌,但我无法找到这种特殊情况。
在以下链接中,我已经提供了源代码部分..
http://community.devexpress.com/forums/p/105855/358119.aspx#358119
答案 0 :(得分:2)
您是否搜索过DevExpress支持中心?这里有一些例子:
答案 1 :(得分:1)
你可以采用不同的方式.......
public class MyClass
{
public int ID { get; set; }
public byte[] MyImage { get; set; }
}
是将图像存储为二进制blob的表的包装类(MS SQL image或varbinary(max),Oracle BLOB等。)
我发现了4种不同的方式(也就是“简单方法”;当然还有无数其他更复杂的选择)将二进制数据显示为图像,使用DevExpress中的ASPxImage和ASPxBinaryImage控件一个ASPxGridView:
<dx:ASPxGridView ID="gridImages" runat="server"
AutoGenerateColumns="False" KeyFieldName="ID">
<Columns>
<dx:GridViewDataTextColumn Caption="ID" FieldName="ID">
</dx:GridViewDataTextColumn>
使用类似
的查询var images = database.Query<MyImages>().OrderBy(r => r.ID);
gridImages.DataSource = images;
gridImages.DataBind();
使用GridViewDataBinaryImageColumn
<dx:GridViewDataBinaryImageColumn FieldName="MyImage">
</dx:GridViewDataBinaryImageColumn>
在DataItemTemplate中使用ASPxBinaryImage
<dx:GridViewDataColumn FieldName="MyImage" >
<DataItemTemplate>
<dx:ASPxBinaryImage ID="img" runat="server"
Value='<%# Eval("MyImage") %>'>
</dx:ASPxBinaryImage>
</DataItemTemplate>
</dx:GridViewDataColumn>
ASPxBinaryImage使用Value属性存储一个字节数组,DevExpress框架将其转换为src请求DevExpress实现的URL为字节流提供服务的地方。
如果您更喜欢ASP:Image或ASPxImage到ASPxBinaryImage,您需要编写.ashx处理程序来检索图像数据:
public class MyImageHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
int id = 0;
int.TryParse(context.Request["id"], out id);
var image = database.FirstOrDefault<MyClass>(c => c.ID == id);
if (image == null)
{
context.Response.Clear();
return;
}
context.Response.ContentType = "image/png";
context.Response.BinaryWrite(image.MyImage);
context.Response.End();
}
的ImageUrlFormatString来调用此.ashx处理程序
或设置ASPxImage的ImageUrl属性:
<dx:GridViewDataColumn >
<DataItemTemplate>
<dx:ASPxImage runat="server" ID="imgTemplate"
ImageUrl='<%# "myimage.ashx?id=" + Eval("ID") %>'>
</dx:ASPxImage>
</DataItemTemplate>
</dx:GridViewDataColumn>
</Columns>
答案 2 :(得分:0)
以下知识库文章介绍了如何完成此任务: http://www.devexpress.com/Support/Center/KB/p/A2707.aspx
它描述了主要想法并包含一个可以下载的例子