EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

添加显示弹出窗口的操作

在本课程中,您将学习如何创建显示弹出窗口的动作。当您希望用户在执行操作之前在弹出对话框中输入多个参数时,这种类型的操作非常有用。

注意

在继续之前,请花一点时间回顾以下课程。

创建一个控制器和一个PopupWindowShowAction

  • 如“添加简单操作”课程中所述,将新的View Controller添加到MySolution.Module项目中。将其命名为PopupNotesController。
  • 右键单击MySolution.Module | 控制器| PopupNotesController.csPopupNotesController.vb)文件,然后选择“视图设计器”以调用该设计器。

    popup_notes_designer

  • 从DX中拖动PopupWindowShowAction组件19.2设计器的XAF“动作”选项卡。在popupWindowShowAction1 “属性”窗口中,将“名称”和“ Id ”属性设置为“ ShowNotesAction”,并将“标题”属性设置为““显示注释””。将类别属性设置为“编辑”。此属性指定当前操作所属的操作组。单个组中的所有动作在UI中依次显示在一起。

    Tutorial_EF_Lesson4_2

  • 要激活PopupNotesControllerDemoTask详细视图只,设置控制器ViewController.TargetObjectType属性MySolution.Module.DemoTask,并设置ViewController.TargetViewType的DetailView

    Tutorial_EF_Lesson4_2_1

指定弹出列表视图

重点关注ShowNotesAction组件。在“属性”窗口中,切换到“事件”视图。双击CustomizePopupWindowParams事件,根据您的ORM添加“ using ”(在VB中为Imports)指令,然后将自动生成的事件处理程序代码替换为以下代码。

using DevExpress.Persistent.BaseImpl; //For XPO
using DevExpress.Persistent.BaseImpl.EF; //For EF
// ...
private void ShowNotesAction_CustomizePopupWindowParams(object sender, CustomizePopupWindowParamsEventArgs args) {
    IObjectSpace objectSpace = Application.CreateObjectSpace(typeof(Note));
    string noteListViewId = Application.FindLookupListViewId(typeof(Note));
    CollectionSourceBase collectionSource = Application.CreateCollectionSource(objectSpace, typeof(Note), noteListViewId);
    args.View = Application.CreateListView(noteListViewId, collectionSource, true);
    //Optionally customize the window display settings.
    //args.Size = new System.Drawing.Size(600, 400);
    //args.Maximized = true;
    //args.IsSizeable = false;
}

有关此事件的详细信息,请参考PopupWindowShowAction.CustomizePopupWindowParams主题。上面的代码将在生成弹出窗口时创建注释列表视图。

要创建一个列表视图,使用XafApplication再次对象(如你在做以前的教训)。在上面的代码中,XafApplication可帮助您在应用程序模型中找到所需列表视图的ID 。请注意,列表视图的集合源是在单独的对象空间中创建的。要创建对象空间,请再次使用XafApplication。

处理执行事件

在控制器的设计器中,使用“操作”的属性切换到“属性”窗口中的“事件”视图。双击Execute事件,添加“使用”(在VB中为Imports)指令,然后将自动生成的事件处理程序代码替换为以下代码。

using MySolution.Module.BusinessObjects;
// ...
private void ShowNotesAction_Execute(object sender, PopupWindowShowActionExecuteEventArgs args) {
    DemoTask task = (DemoTask)View.CurrentObject;
    foreach(Note note in args.PopupWindowViewSelectedObjects) {
        if(!string.IsNullOrEmpty(task.Description)) {
            task.Description  = Environment.NewLine;
        }
        task.Description  = note.Text;
    }
    if(((DetailView)View).ViewEditMode == ViewEditMode.View) {
        View.ObjectSpace.CommitChanges();
    }
}

执行点击时引发事件OK,在弹出的窗口按钮。当执行上述处理程序时,所选Note对象的Text属性值将附加到Task.Description属性值。

在此代码中,使用事件处理程序的PopupWindowShowActionExecuteEventArgs.PopupWindowViewSelectedObjects参数访问在弹出窗口中选择的对象。

若要刷新表示修改后的Description属性的编辑器,请首先使用CompositeView.FindItem方法在当前视图的CompositeView.Items集合中找到其PropertyEditor。若要更新属性编辑器的编辑器显示的值,请调用PropertyEditor.ReadValue方法。

在ASP.NET Web应用程序中,“详细视图”以“查看”和“编辑”模式显示。当ShowNotes操作是针对DemoTask详细查看以激活视图模式,对所做的更改DemoTask.Description属性应保存到数据库中。为此,将调用当前View的ObjectSpace的CommitChanges方法。当您在处于Edit模式的DemoTask Detail视图中使用ShowNotes Action时,可以通过相应的内置Actions保存或回滚更改。

向用户界面添加注释

  • 要将Note业务类添加到UI构造过程中,请将其添加到“应用程序模型”中。
  • 如果您的ORM是Entity Framework,则应在进行下一步之前在DbContext中注册Note类型。编辑BusinessObjects \ MySolutionDbContext.cs文件,如下所示。

    public class MySolutionDbContext : DbContext {
        //...
        public DbSet<Note> Notes { get; set; } 
    }
    
  • 要从业务类库添加注释业务类,请使用模块设计器。双击MySolution.Module项目中的Module.cs(Module.vb)文件。设计器的“导出的类型”部分列出了可以添加的业务类。

    • 如果您使用的是XPO:

      找到引用的装配体| DevExpress.Persistent.BaseImpl.v 19.2 |中文 注意节点。

    • 如果您使用的是实体框架:

      找到引用的装配体| DevExpress.Persistent.BaseImpl.EF.v 19.2 | 注意节点。

    选择此节点,然后按SPACEBAR,或右键单击它,然后在调用的上下文菜单中选择“应用程序中的使用类型”。

    Tutorial_EF_Lesson4_4_1

  • 生成项目。

    重建解决方案

    注意

    若要创建注释对象,应将“注释”项添加到“操作”的项中。为此,请执行“将项目添加到新操作”课程中演示的步骤。

    要访问现有的Note对象,请将Note项添加到ShowNavigationItem Action的项中(由导航控件显示)。为此,请执行“将项目添加到导航控件”课程中演示的步骤。

结果

运行WinForms或ASP.NET应用程序。通过“新建操作”创建多个Note对象。在导航控件中选择任务项。双击列出的任务对象之一。在调用的详细信息表单中,找到表示已实现操作的“显示注释”工具栏按钮。单击此按钮,将调用一个弹出窗口。在列表中选择一个“注释”对象,然后单击“确定”。检查以查看Task.Description属性值已更改。

Tutorial_EF_Lesson4_5

提示

有关如何创建和显示详细视图的示例,请参阅“如何:在弹出窗口中创建和显示选定对象的详细视图”主题。

您可以在MySolution.Module | |中查看本教程中演示的代码。控制器| XAF随附的Main Demo的PopupNotesController.cs(PopupNotesController.vb)文件。该MainDemo应用程序安装在%PUBLIC%\文件\ DevExpress的演示19.2 \组件\ eXpressApp框架\ MainDemo默认。可从http://demos.devexpress.com/XAF/MainDemo/在线获得ASP.NET版本。

下一课: 使用选项选择添加操作

相关文章

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