EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:自定义内置属性编辑器(PropertyEditor)(ASP.NET)

本主题描述如何为ASP.NET应用程序自定义内置XAF属性编辑器(请参阅“如何:自定义内置属性编辑器(WinForms)”主题以查看WinForms的类似示例)。在此示例中,自定义了ASPxDateTimePropertyEditor以显示日历和时钟:

Web日历属性编辑器

注意

您可以在XAF随附的Feature Center Demo中看到此处演示的代码以及自定义属性编辑器上的更多示例。默认情况下,Feature Center演示安装在%PUBLIC%\ Documents \ DevExpress演示19.2 \ Components \ eXpressApp Framework \ FeatureCenter中。该演示的ASP.NET版本可从http://demos.devexpress.com/XAF/FeatureCenter/在线获得。

继承属性编辑器

在ASP.NET模块项目中,继承ASPxDateTimePropertyEditor类。请注意,您的编辑器应该是公开的。要自定义在编辑模式下使用的属性编辑器的控件,请重写SetupControl方法。若要指定属性编辑器可用于DateTime类型的属性,请应用PropertyEditorAttribute属性:

using System;
using System.Web.UI.WebControls;
using DevExpress.Web;
using DevExpress.ExpressApp.Model;
using DevExpress.ExpressApp.Editors;
using DevExpress.ExpressApp.Web.Editors.ASPx;
//...
[PropertyEditor(typeof(DateTime), false)]
public class CustomDateTimeEditor : ASPxDateTimePropertyEditor {
    public CustomDateTimeEditor(Type objectType, IModelMemberViewItem info) : 
        base(objectType, info) { }
    protected override void SetupControl(WebControl control) {
        base.SetupControl(control);
        if(ViewEditMode == ViewEditMode.Edit) {
            ASPxDateEdit dateEdit = (ASPxDateEdit)control;
            dateEdit.TimeSectionProperties.Visible = true;
            dateEdit.UseMaskBehavior = true;
        }
    }
}

使用自定义属性编辑器

要将实现的属性编辑器用于特定属性,请在APP.NET项目中运行模型编辑器,并将所需OwnMember或ViewItem节点的IModelCommonMemberViewItem.PropertyEditorType设置为CustomDateTimeEditor。

提示

要将实现的属性编辑器用于所有DateTime属性,请在上面的代码中将PropertyEditorAttribute构造函数的defaultEditor参数设置为true

请注意,应格式化与创建的属性编辑器关联的业务类的属性值,以显示DateTime值的时间部分

using DevExpress.ExpressApp.Model;
//...
[ModelDefault("DisplayFormat", "{0:MM.dd.yyyy hh:mm:ss}")]
[ModelDefault("EditMask", "MM.dd.yyyy hh:mm:ss")]
public DateTime CreatedOn { get; set;}

有关详细信息,请参阅格式化属性值主题。

相关文章

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