EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

团块图像中XPO属性

您可以将图像属性声明 为字节数组或MediaDataObject类型引用属性(此类型在Business Class Library中可用)。

图像作为字节数组

下面的示例说明了如何通过声明字节 数组属性并将ImageEditorAttribute应用于XPO持久类中的字节数组类型图像属性。您也可以使用属性的参数来自定义图像编辑器。

[VisibleInListView(true)]
[ImageEditor(ListViewImageEditorMode = ImageEditorMode.PictureEdit, 
    DetailViewImageEditorMode = ImageEditorMode.PictureEdit, 
    ListViewImageEditorCustomHeight = 40)]
public byte[] ImageProperty {
    get { return GetPropertyValue<byte[]>(nameof(ImageProperty)); }
    set { SetPropertyValue<byte[]>(nameof(ImageProperty), value); }
}
[Delayed(), VisibleInListViewAttribute(true)]
[ImageEditor(ListViewImageEditorMode = ImageEditorMode.PopupPictureEdit, DetailViewImageEditorMode = ImageEditorMode.DropDownPictureEdit)]
public byte[] ImageDelayedProperty {
    get { return GetDelayedPropertyValue<byte[]>(nameof(ImageDelayedProperty)); }
    set { SetDelayedPropertyValue<byte[]>(nameof(ImageDelayedProperty), value); }
}

有关上面代码中传递给ImageEditor属性的参数的详细信息,请参考ImageEditorAttribute主题。您还可以使用“模型编辑器”中的以下属性来指定图像选项:

提示

当应用程序在列表视图中显示很多大图像时,它可能会消耗大量内存。这适用于具有许多同时连接的客户端的ASP.NET应用程序。为了提高性能,可以使用延迟加载,如如何在XPO中启用延迟加载图像示例中所示。

您可以使用其数据源属性更新或检索MobileImagePropertyEditor在客户端显示的图像属性值。数据源属性名称由带有“ DataSource”后缀的属性名称组成,可以从View Model进行访问。图像属性值应为base64编码的图像。下面的示例演示如何将图像分配给Signature属性:

var imageData = fullImageData.replace("data:image/png;base64,", "");
$model.SignatureDataSource = imageData;

请注意,您不应指定“ data:image / png; base64”前缀。在上面的代码中,此前缀替换为空字符串。

图像作为MediaDataObject

下面的示例说明了如何在XPO持久类中实现MediaDataObject类型的图像属性(在Business Class Library中提供)。WinForms和ASP.NET图像属性编辑器都将自动用于MediaDataObject类型的属性。不需要任何属性(但是,您仍然可以应用ImageEditorAttribute来自定义编辑器的选项,如上面在字节数组中所展示的那样)。使用此类型可减少流量,因为图像被缓存在浏览器缓存中(与byte []类型的图像相比)。延迟加载始终用于MediaDataObject属性。

using DevExpress.Xpo;
using DevExpress.Persistent.BaseImpl;
// ...
[DefaultClassOptions]
public class Contact : BaseObject {
    public Contact(Session session) : base(session) { }
    private string name;
    public string Name {
        get { return name; }
        set { SetPropertyValue(nameof(Name), ref name, value); }
    }
    private MediaDataObject image;
    public MediaDataObject Image {
        get { return image; }
        set { SetPropertyValue(nameof(Image), ref image, value); }
    }
}
相关文章

转载保留此链接,注明出处