EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:创建自定义控件详细信息

本文介绍如何将自定义控件添加到详细信息视图。当您需要在自定义视图中的特定编辑器附近放置自定义控件并且“动作容器视图项”方法不合适时,请使用此方法。

提示

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

  • 调用与平台有关的MySolution.Module.Win,MySolution.Module.Web或MySolution.Module.Mobile项目的模型编辑器,然后找到所需的“视图” |“视图”。DetailView节点。使用为Items子节点调用的上下文菜单添加IModelControlDetailItem节点。

    HT_Add_Button2_1

  • 在WinForms应用程序中,将新创建的节点的IModelControlDetailItem.ControlTypeName属性设置为“ System.Windows.Forms.Button”。在ASP.NET应用程序中,将新创建的节点的ControlTypeName属性设置为“ DevExpress.Web.ASPxButton”。在移动应用程序中,将新创建的节点的ControlTypeName属性设置为“ DevExpress.ExpressApp.Mobile.MobileModel.Button”。将Id属性设置为“ MyButton”,将IModelViewItem.Caption-设置为“我的按钮”。
  • 聚焦意见| DetailView | 布局节点。右键单击空白处以调用布局自定义对话框,然后将新创建的控件放在所需的位置。有关如何更改布局的详细信息,请参阅“查看项目布局自定义”主题。

    HT_Add_Button2_2

  • 运行应用程序以确保将按钮添加到所需的详细信息视图
  • 将新的View Controller添加到WinForms,ASP.NET或Mobile模块中,以处理在Application Model中添加的按钮的Click事件。订阅ViewItem.ControlCreated事件,并将自动生成的代码替换为以下内容。

    WinForms

    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Layout;
    using DevExpress.ExpressApp.Win.Core;
    using System.Windows.Forms;
    // ...
    public class ControlViewItemControllerWin : ObjectViewController<DetailView, Contact> {
        protected override void OnActivated() {
            base.OnActivated();
            ControlViewItem item = ((DetailView)View).FindItem("MyButton") as ControlViewItem;
            if (item != null) {
                item.ControlCreated  = item_ControlCreated;
            }
        }
        void item_ControlCreated(object sender, EventArgs e) {
            (((ControlViewItem)sender).Control as Button).Text = "Click me!";
            (((ControlViewItem)sender).Control as Button).Click  = ButtonClickHandlingWinController_Click;
        }
        void ButtonClickHandlingWinController_Click(object sender, EventArgs e) {
            MessageBox.Show("Action from custom View Item was executed!");
        }
    }
    

    ASP.NET

    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Layout;
    using DevExpress.ExpressApp.Web;
    using DevExpress.Web;
    // ...
    public class ControlViewItemControllerWeb : ObjectViewController<DetailView, Contact> {
        protected override void OnActivated() {
            base.OnActivated();
            ControlViewItem item = ((DetailView)View).FindItem("MyButton") as ControlViewItem;
            if (item != null) {
                item.ControlCreated  = item_ControlCreated;
            }
        }
        private void item_ControlCreated(object sender, EventArgs e) {
            ASPxButton button = ((ControlViewItem)sender).Control as ASPxButton;
            if (button == null) return;
            button.ID = "MyButton";
            button.Text = "Click me!";
            button.Click  = ButtonClickHandlingWebController_Click;
        }
        void ButtonClickHandlingWebController_Click(object sender, EventArgs e) {
            WebWindow.CurrentRequestWindow.RegisterClientScript(
                "ShowAlert", @"alert('Action from custom View Item was executed!');");
        }
    }
    

    移动的

    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Layout;
    using DevExpress.ExpressApp.Mobile.MobileModel;
    using System;
    //...
    public class ControlViewItemControllerMobile : ObjectViewController<DetailView, Contact> {
        protected override void OnActivated() {
            base.OnActivated();
            ControlViewItem item = ((DetailView)View).FindItem("MyButton") as ControlViewItem;
            if (item != null) {
                item.ControlCreated  = item_ControlCreated;
            }
        }
        private void item_ControlCreated(object sender, EventArgs e) {
            Button button = ((ControlViewItem)sender).Control as Button;
            if (button == null) return;
            button.Text = "Click me!";
            button.OnClick = @"DevExpress.ui.notify({
                message: 'Action from custom View Item was executed!' 
            })";
        }
    }
    
  • 运行该应用程序,以确保当您单击新创建的按钮时,将显示信息窗口。
相关文章

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