EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

显示ASP.NET应用程序中的主页

本主题详细介绍了从最终用户获得授权到向最终用户显示主页之间所执行的步骤。与XAF应用程序中的任何其他页面一样,该主页由两个对象定义:一个称为Template的控件和一个称为Window的抽象实体。与模板相反,窗口不包含有关必须在其上放置哪些控件的信息。Windows仅在eXpressApp Framework应用程序中包含有关其功能的信息。在本主题中,您将学习如何创建Window和Template对象并进行关联以显示主页。

创建一个窗口

MainWindowWin1

阶段说明

干预方式

创建Window类的实例之前,应用程序模型的ActionDesign |中列出的所有Controller。Controllers节点已创建。

订阅Controller.AfterConstruction事件以设置Controller的属性。例如,您可以指定激活控制器要满足的条件。

然后,创建一个窗口,并且所有控制器都在该窗口中注册。这意味着它们的WindowController.Window属性设置为当前的Window对象。

订阅Controller.FrameAssigned事件以访问Controller的Window(请参见WindowController.Window)并对其执行所需的操作。例如,在事件处理程序中,您可以订阅激活Controller之前引发的事件。

代表WindowController类后代的Controller被一个接一个地激活。

要仅激活主窗口的窗口控制器,请将其WindowController.TargetWindowType属性设置为MainAny

重写Controller的WindowChanging方法以取消激活。将一个项目添加到Controller.Active集合中,并传递false作为该项目的value

订阅Controller.Activated事件。这是使用Controller执行所需功能的主要条目。

将视图分配给窗口

MainWindow2Web

阶段说明

干预方式

在激活的窗口控制器内,有一个内置的WebShowStartupNavigationItemController。激活后,此Controller订阅ShowNavigationItemControllerShowNavigationItemController.ItemsInitialized事件。在ItemsInitialized事件处理程序中,执行ShowNavigationItemControllerShowNavigationItem操作,就好像在导航控件中选择了一个项目一样。这将强制创建与“选定”项关联的视图。

要模仿导航控件中特定项的选择,请继承ShowNavigationItemController并重写其GetStartupNavigationItem方法。在此方法中,从ShowNavigationItem操作的Items集合中返回所需的项目。

创建的视图将分配给当前窗口。

订阅Frame.ViewChanging事件。您可以在Window Controller的Controller.Activated事件处理程序中或View Controller的Controller.FrameAssigned事件处理程序中执行此操作。

激活了Window的Frame.Controllers集合中的View Controllers 。

您可以使用以下属性来管理View Controller的激活:ViewController.TargetViewTypeViewController.TargetViewNestingViewController.TargetObjectTypeViewController.TargetViewId

重写Controller的ViewChanging方法以取消激活。将一个项目添加到Controller.Active集合中,并传递false作为该项目的value

订阅Controller.Activated事件。这是使用Controller执行所需功能的主要条目。

将模板分配给窗口

MainWindow3Web

阶段说明 干预方式
Default.aspx的页面代表一个模板在XAF,因为它实现了IWindowTemplate。模板的内容可以由DefaultVerticalTemplateContentDefaultTemplateContent 用户控件表示。创建模板的内容时,还将创建其所有动作容器。操作容器是显示操作的控件。默认情况下创建以下操作容器:SearchActionContainer,ContextObjectsCreationActionContainer,RecordsNavigationContainer,ListViewDataManagementActionContainer,ViewPresentationActionContainer,TopRecordEditActionContainer,BottomRecordEditActionContainer,DiagnosticActionContainer,ViewsHistoryNavigation。 请参考ASP.NET Web应用程序外观主题以了解如何选择模板内容类型。请参阅“如何:自定义ASP.NET模板”主题,以了解如何提供自定义模板内容。
代表模板的Default.aspx页被分配给创建的Window的Window.Template属性。

创建动作控件

MainWindow4Web

阶段说明 干预方式
Window的TemplateChanged事件引发。此事件由已激活的FillActionContainersController处理,因为它表示窗口控制器。该TemplateChanged事件处理程序寄存器操作在窗口的模板的行动容器。每个Action是注册在其所在的应用模型的映射操作集装箱ActionDesign | ActionToContainerMapping节点。动作容器为其动作创建控件。 订阅Frame.TemplateChanged事件以访问窗口的模板及其操作容器。为此,请使用窗口控制器的Controller.Activated事件。要查看示例,请参考如何:访问导航控件主题。

将窗口的视图分配给模板

MainWindow5Web

阶段说明 干预方式
窗口的视图分配给Default.aspx模板。这将强制创建View的控件(请参见View.CreateControls)。将该控件添加到模板的ViewSite中。 处理View.ControlsCreatingView.ControlsCreated事件,以在创建表示UI中的View的控件之前和之后执行自定义操作。
显示模板。

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