EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

改善ASP.NET Office模块编辑器性能的方法

富文本编辑器

在视图模式下显示标签控件而不是ASPxRichEdit

标签是一个轻量级的控制,使您可以显示HTML格式的文本。使用此控件而不是ASPxRichEdit可以减少视图的加载时间。请注意,LabelASPxRichEdit控件以不同的方式显示内容,例如,Label不支持锚点。

下列步骤显示了如何更换ASPxRichEdit标签在详细信息视图查看方式

  1. ASP.NET Module项目中,创建一个View Controller
  2. 在覆盖OnActivated方法,获得WebRichTextViewModeController禁用它:
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Office.Web;
// ...
public class ViewModeRichEditController : ObjectViewController<DetailView, Document> {
    protected override void OnActivated() {
        base.OnActivated();
        Frame.GetController<WebRichTextViewModeController>()?.Active.SetItemValue("LabelMode", false);
    }
    protected override void OnDeactivated() {
        base.OnDeactivated();
        Frame.GetController<WebRichTextViewModeController>()?.Active.SetItemValue("LabelMode", true);
    }
}

如果并排显示此详细信息视图和列表视图,请将DetailView.ViewEditMode属性设置为View。以下控制器演示了如何执行此操作:

using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Web.SystemModule;
// ...
public class CustomMasterDetailModeController : WebMasterDetailModeController {
    protected override void SetupViewEditMode(DetailView view) {
        if(View.Id != "Document_ListView") {
            base.SetupViewEditMode(view);
        }
    }
}

在编辑模式下隐藏功能区控件,并在执行操作时显示它

当您并排显示“列表视图”和“详细视图”并想要隐藏ASPxRichTextPropertyEditor的功能区(在下图中突出显示)时,请实现此方法:

此方法还演示了如何创建显示功能区的动作。

  1. ASP.NET Module项目中,创建一个View Controller
  2. 在Controller的构造函数中,创建一个SimpleAction并订阅其Execute事件。
  3. 在重写的OnActivated方法中,将视图显示的每个ASPxRichTextPropertyEditor的MenuManagerType属性设置为None
  4. Action.Execute事件处理程序中,调用SetRibbonMode方法以显示视图显示的每个ASPxRichTextPropertyEditor的功能区控件。
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using DevExpress.ExpressApp.Office.Web;
using DevExpress.Persistent.Base;
using DevExpress.Web.ASPxRichEdit;
// ...
public class ShowRibbonController : ObjectViewController<ListView, Document> {
    public ShowRibbonController() {
        SimpleAction showRibbonAction = new SimpleAction(this, "ShowRibbon", PredefinedCategory.Edit);
        showRibbonAction.Execute  = Action_Execute;
    }
    protected override void OnActivated() {
        base.OnActivated();
        foreach(var editor in View.EditView.GetItems<ASPxRichTextPropertyEditor>()) {
            editor.MenuManagerType = WebMenuManagerType.None;
        }
    }
    private void Action_Execute(object sender, SimpleActionExecuteEventArgs e) {
        foreach(var editor in View.EditView.GetItems<ASPxRichTextPropertyEditor>()) {
            editor.SetRibbonMode(RichEditRibbonMode.OneLineRibbon);
            // optionally, you can display only the Home tab to speed up Ribbon loading
            //editor.ASPxRichEditControl.RibbonTabs.ForEach(rt => { if(!(rt is DevExpress.Web.ASPxRichEdit.RERHomeTab)) rt.Visible = false; });
        }
    }
}

电子表格编辑器

启用阅读视图模式

显示较大的电子表格文档时,启用“阅读视图模式”

  1. ASP.NET Module项目中,创建一个View Controller
  2. 在重写的OnActivated方法中,如如何:访问电子表格控件中所述,访问ASPxSpreadsheetPropertyEditor控件
  3. ASPxSpreadsheetMode属性设置为Reading
using System;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Office.Web;
using DevExpress.Web.ASPxSpreadsheet;
// ...
public class CustomASPxSpreadsheetController : ViewController<DetailView> {
    protected override void OnActivated() {
        base.OnActivated();
        foreach (ASPxSpreadsheetPropertyEditor editor in View.GetItems<ASPxSpreadsheetPropertyEditor>()) {
            if (editor.ASPxSpreadsheetControl != null) {
                CustomizeSpreadsheetControl(editor.ASPxSpreadsheetControl);
            }
            else {
                editor.ControlCreated  = Editor_ControlCreated;
            }
        }
    }
    void Editor_ControlCreated(object sender, EventArgs e) {
        ASPxSpreadsheet spreadsheet = ((ASPxSpreadsheetPropertyEditor)sender).ASPxSpreadsheetControl;
        CustomizeSpreadsheetControl(spreadsheet);
    }
    void CustomizeSpreadsheetControl(ASPxSpreadsheet spreadsheetControl) {
        spreadsheetControl.SettingsView.Mode = SpreadsheetViewMode.Reading;
    }
}

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