EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:自定义新建按钮的项目列表

本主题演示如何使用经典Web UI访问WinForms和ASP.NET应用程序中添加到NewObjectViewController.NewObjectAction项目列表中的业务类列表。

通常,您可以使用NewObjectViewController.NewObjectActionItemListMode属性选择填充“新建操作”项目列表的预定义模式。如果NewObjectActionItemListMode枚举中列出的模式不符合您的要求,请继续查看如何手动填充列表。

自定义新操作的项目列表,处理NewObjectViewController.CollectDescendantTypesNewObjectViewController.CollectCreatableItemTypes的事件NewObjectViewController,其中包含了新的行动。当将当前对象类型及其后代添加到Action的Items列表中时,将引发前一个事件;当在Application Model中将CreatableItem属性设置为true的所有其余类型都添加时,则引发后一个事件(请参见IModelBOModel)。在下面的示例中,任务项被删除。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.ExpressApp;
using DevExpress.Persistent.BaseImpl;
using DevExpress.ExpressApp.SystemModule;

namespace CustomizeNewActionItemsListExample.Module.Controllers {
    public class CustomizeNewActionItemsListController : ObjectViewController<ObjectView, Task> {
        protected override void OnActivated() {
            base.OnActivated();
            NewObjectViewController controller = Frame.GetController<NewObjectViewController>();
            if (controller != null) {
                controller.CollectCreatableItemTypes  = NewObjectViewController_CollectCreatableItemTypes;
                controller.CollectDescendantTypes  = NewObjectViewController_CollectDescendantTypes;
                if (controller.Active) {
                    controller.UpdateNewObjectAction();
                }
            }
        }
        private void NewObjectViewController_CollectDescendantTypes(object sender, CollectTypesEventArgs e) {
            CustomizeList(e.Types);
        }
        private void NewObjectViewController_CollectCreatableItemTypes(object sender, CollectTypesEventArgs e) {
            CustomizeList(e.Types);
        }
        private void CustomizeList(ICollection<Type> types) {
            List<Type> unusableTypes = new List<Type>();
            foreach (Type item in types) {
                if (item == typeof(Task)) {
                    unusableTypes.Add(item);
                }
            }
            foreach (Type item in unusableTypes) {
                types.Remove(item);
            }
        }
        protected override void OnDeactivated() {
            NewObjectViewController controller = Frame.GetController<NewObjectViewController>();
            if (controller != null) {
                controller.CollectCreatableItemTypes -= NewObjectViewController_CollectCreatableItemTypes;
                controller.CollectDescendantTypes -= NewObjectViewController_CollectDescendantTypes;
            }
            base.OnDeactivated();   
        }
    }
 }
相关文章

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