Skip to main content
A newer version of this page is available. .
.NET Framework 4.5.2+
  • The page you are viewing does not exist in the .NET Standard 2.0+ platform documentation. This link will take you to the parent topic of the current section.
  • The page you are viewing does not exist in the .NET Core 3.0+ platform documentation. This link will take you to the parent topic of the current section.

IWebRichTextValueStorage Interface

Declares members of the Rich Text editor’s value storage.

Namespace: DevExpress.ExpressApp.Office.Web

Assembly: DevExpress.ExpressApp.Office.Web.v20.2.dll

NuGet Package: DevExpress.ExpressApp.Office.Web

Declaration

public interface IWebRichTextValueStorage

Remarks

A Rich Text editor’s value storage allows you to implement custom logic executed when saving or loading a RichText document. Follow the steps below to create a custom value storage that overrides a file storage format.

  1. In the ASP.NET Module project, create a class that implements the IWebRichTextValueStorage interface as shown below:

    using DevExpress.ExpressApp.Office.Web;
    using DevExpress.Web.ASPxRichEdit;
    using DevExpress.XtraRichEdit;
    using System.IO;
    // ...
    public class WebMhtRichTextValueStorage : IWebRichTextValueStorage {
        public object GetValue(ASPxRichEdit control) {
            using (MemoryStream memoryStream = new MemoryStream()) {
                control.SaveCopy(memoryStream, DocumentFormat.MhtText);
                using (StreamReader streamReader = new StreamReader(memoryStream)) {
                    memoryStream.Seek(0, SeekOrigin.Begin);
                    return streamReader.ReadToEnd();
                }
            }
        }
        public void SetValue(ASPxRichEdit control, object propertyValue, string documentID) {
            control.Open(documentID, DocumentFormat.MhtText, () => (byte[])propertyValue);
        }
    }
    
  2. Create a View Controller and access the ASPxRichTextPropertyEditor as described in the Ways to Access UI Elements and Their Controls topic. Set the editor’s ValueStorage property to an instance of WebCustomRichTextValueStorage as shown below:

    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Office.Web;
    // ...
    public class WebRichTextValueStorageController : ObjectViewController<DetailView, Document> {
        protected override void OnActivated() {
            base.OnActivated();
            ASPxRichTextPropertyEditor richTextPropertyEditor = View.FindItem("Text") as ASPxRichTextPropertyEditor;
            if (richTextPropertyEditor != null) {
                richTextPropertyEditor.ValueStorage = new WebMhtRichTextValueStorage();
            }
        }
    }
    
See Also