This code example demonstrates how to open and save RichEdit documents from a database binary column.
Implementation Details
Open a document
- Pass a model with a binary property (rich text content to be displayed) to the RichEdit's PartialView.
- Call the RichEditExtension.Open method to open a new document with the specified document ID and content type, and retrieve the binary content from the passed model:
C#@Html.DevExpress().RichEdit(settings => {
settings.Name = "RichEditName";
settings.CallbackRouteValues = new { Controller = "Home", Action = "RichEditPartial" };
//...
}).Open(Model.DocumentId, Model.DocumentFormat, () => { return Model.Document; }).GetHtml()
Save a document
- Click the Save ribbon command to initiate a save operation for the active document.
- Use the RichEditSettings.Saving property to save a document in a byte array.
- Call the RichEditExtension.SaveCopy method to get the active document as a byte array, save it to the related bound model's binary property, and set the Handled property to
true
to prevent the default document processing:
C#settings.Saving = (s, e) => {
byte[] docBytes = RichEditExtension.SaveCopy("RichEditName", DevExpress.XtraRichEdit.DocumentFormat.Rtf);
DXWebApplication1.Models.DataHelper.SaveDocument(docBytes);
e.Handled = true;
};
Files to Look At
Documentation
More Examples
Does this example address your development requirements/objectives?
(you will be redirected to DevExpress.com to submit your response)
Example Code
Razor@model DXWebApplication1.Models.RichEditData
@Html.DevExpress().RichEdit(settings => {
settings.Name = "RichEditName";
settings.CallbackRouteValues = new { Controller = "Home", Action = "RichEditPartial" };
settings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
settings.Saving = (s, e) =>
{
byte[] docBytes = RichEditExtension.SaveCopy("RichEditName", DevExpress.XtraRichEdit.DocumentFormat.Rtf);
DXWebApplication1.Models.DataHelper.SaveDocument(docBytes);
e.Handled = true;
};
}).Open(Model.DocumentId, Model.DocumentFormat, () => { return Model.Document; }).GetHtml()
Code@ModelType DXWebApplication1.Models.RichEditData
@Html.DevExpress().RichEdit( _
Sub(settings)
settings.Name = "RichEditName"
settings.CallbackRouteValues = New With {.Controller = "Home", .Action = "RichEditPartial"}
settings.Width = System.Web.UI.WebControls.Unit.Percentage(100)
settings.Saving = Sub(s, e)
Dim docBytes As Byte() = RichEditExtension.SaveCopy("RichEditName", DevExpress.XtraRichEdit.DocumentFormat.Rtf)
DXWebApplication1.Models.DataHelper.SaveDocument(docBytes)
e.Handled = True
End Sub
End Sub).Open(Model.DocumentId, Model.DocumentFormat, _
Function()
Return Model.Document
End Function).GetHtml()
C#using System;
using System.Linq;
using DevExpress.XtraRichEdit;
using DXWebApplication1.Models.EF;
namespace DXWebApplication1.Models {
public class DataHelper {
public static byte[] GetDocument() {
DataClassesDataContext context = new DataClassesDataContext();
return context.Docs.FirstOrDefault().DocBytes.ToArray();
}
public static void SaveDocument(byte[] bytes) {
DataClassesDataContext context = new DataClassesDataContext();
context.Docs.FirstOrDefault().DocBytes = bytes;
context.SaveChanges();
}
}
public class RichEditData {
public string DocumentId { get; set; }
public DocumentFormat DocumentFormat { get; set; }
public byte[] Document { get; set; }
}
}