EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

对话框控制器

eXpressApp框架具有几个自动添加到每个Frame的控制器,并提供了应用程序中的基本功能(NewObjectViewController,ShowNavigationItemController等)。但是,它不包括DialogController-如果需要,您需要手动添加它。它用于在弹出的Windows中添加“接受”和“取消”按钮。例如,对话框控制器包含在由PopupWindowShowAction调用的弹出窗口中。该控制器提供“确定”和“取消”纽扣。本主题描述了对话框控制器的行为以及如何在弹出窗口中使用它。

对话框控制器概述

DialogController从继承WindowController类。它包含以下操作

行动

描述

接受动作

DialogController.AcceptAction属性指定。如果当前弹出窗口包含“详细信息视图”,则此操作将执行窗口的ModificationsController的“保存”操作。您可以通过将DialogController.SaveOnAccept属性设置为false来取消保存。如果当前弹出窗口包含列表视图,则此操作无效。要在执行与此Action相关的默认代码之前实现自定义代码,请处理DialogController.Accepting事件。

默认情况下,执行“接受动作”后,弹出窗口将关闭。要取消关闭,请将DialogController.CanCloseWindow参数设置为false

取消动作

DialogController.CancelAction属性指定。此操作默认情况下关闭当前弹出窗口。要在关闭Window之前实现自定义代码,请处理DialogController.Cancelling事件。您还可以通过将DialogController.CanCloseWindow属性设置为false来取消关闭窗口。

结束动作

该操作未显示在弹出窗口中,因为代表该窗口的模板不包含与该操作关联的操作容器。但是,在弹出窗口的列表视图中按下选定的行时,将执行此操作。此动作的ExecuteCompleted事件由“接受动作”的相应事件处理程序处理,该事件处理程序将关闭弹出窗口。

对话框控制器具有以下特性:

请阅读以下各节,详细了解如何在执行操作后调用的弹出式窗口以及通过PopupWindowShowAction调用的弹出式窗口中使用对话框控制器(请参见显示视图的方法)。

通过ShowViewParameters对象调用的弹出窗口中的对话框控制器

要在执行动作后调用Window,请指定动作的Execute事件处理程序的ActionBaseEventArgs.ShowViewParameters参数。创建调用的Window弹出应用程序应满足以下条件:

注意

请参考模板模板自定义主题,以了解为ASP.NET和Windows Forms应用程序中的不同模板上下文创建了哪些模板。

要将对话框控制器添加到弹出窗口,请使用Action的Execute事件处理程序的ShowViewParameters.Controllers参数。以下代码演示了在弹出窗口中创建列表视图并添加对话框控制器的过程。

提示

DevExpress代码示例数据库(http://www.devexpress.com/example=E244)中提供了完整的示例项目。

using DevExpress.ExpressApp.SystemModule;
// ...
void myAction_Execute(Object sender, SimpleActionExecuteEventArgs e) {
   IObjectSpace objectSpace = Application.CreateObjectSpace(typeof(MyBusinessClass));
   string listViewId = Application.FindListViewId(typeof(MyBusinessClass));
   e.ShowViewParameters.CreatedView = Application.CreateListView(
      listViewId,
      Application.CreateCollectionSource(objectSpace, typeof(MyBusinessClass), listViewId),
      true);
   e.ShowViewParameters.TargetWindow = TargetWindow.NewWindow;
   e.ShowViewParameters.Controllers.Add(Application.CreateController<DialogController>());
}
注意
  • 您可以添加内置的DialogController或从中继承的自定义对话框。
  • 如果ShowViewParameters.CreateAllControllers属性设置为false,并且您想要模板中的“操作”按钮,则将FillActionContainersController添加到Controllers集合中。

通过PopupWindowShowAction类型操作调用的弹出式Windows中的对话框控制器

按下“弹出窗口显示操作”时调用的弹出窗口包含DialogController类型的Dialog Controller。您可以按以下方式更改对话框控制器的动作的行为:

行动

描述

接受动作

默认情况下称为“确定”。若要设置另一个标题,请使用PopupWindowShowAction.AcceptButtonCaption属性。

这将依次引发ActionBase.ExecutingPopupWindowShowAction.ExecuteActionBase.Executed事件。然后,如果Execute事件处理程序的PopupWindowShowActionExecuteEventArgs.CanCloseWindow参数设置为true,它将保存更改(如果Window包含Detail View),并关闭Window。否则,它什么都不做。

取消动作

默认情况下称为“取消”。若要设置另一个标题,请使用PopupWindowShowAction.CancelButtonCaption属性。

所述PopupWindowShowAction.Cancel当最终用户点击当前弹出窗口的取消按钮(参见上表)事件被引发。

您可以使用PopupWindowShowAction.CustomizePopupWindowParams事件处理程序的CustomizePopupWindowParamsEventArgs.DialogController参数来自定义弹出窗口使用的默认对话框控制器。您也可以使用自定义对话框控制器替换该对话框控制器。下面的代码演示了如何在弹出窗口中创建列表视图以及添加自定义对话框控制器。

private void MyPopupWindowShowAction_CustomizePopupWindowParams(object sender, 
      CustomizePopupWindowParamsEventArgs e) {
   IObjectSpace objectSpace = Application.CreateObjectSpace(typeof(MyBusinessClass));
   string listViewId = Application.FindListViewId(typeof(MyBusinessClass));
   e.View =  Application.CreateListView(
      listViewId,
      Application.CreateCollectionSource(objectSpace, typeof(MyBusinessClass), listViewId),
      true);
   e.DialogController = Application.CreateController<MyDialogController>();
}

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