Log In
Home
Support
Demos
Documentation
Blogs
Training
Webinars
[Expand]Welcome to DevExpress .NET Documentation
[Expand]WinForms Controls
[Collapse]ASP.NET Controls and MVC Extensions
 [Expand]Prerequisites
 [Expand]What's Installed
 [Expand]Common Concepts
 [Collapse]ASP.NET WebForms Controls
   Getting Started
  [Expand]Reporting
  [Expand]Chart Control
  [Expand]Grid View
  [Expand]Card View
  [Expand]Vertical Grid
  [Expand]Spreadsheet
  [Collapse]Rich Text Editor
   [Expand]Product Information
    Getting Started
   [Collapse]Concepts
     ASPxRichEdit Control
    [Collapse]Document
     [Collapse]Document Model
       Sub-Document
       Text Content (Text Buffer)
       Characters
       Paragraphs
       Inline Pictures
       Hyperlinks and Bookmarks
       Tables
       Sections
       Headers and Footers
       Document Fields
       Floating Objects
       Document Protection
      Document Layout
     Supported Document Formats
     Import and Export
     Formatting Characters
     Formatting Paragraphs
    [Expand]Fields
     Mail Merge
     Restrictions
     Spell Checking
    [Expand]Client API
    [Expand]Built-in Dialogs
     Adaptivity
     HTML Tag Interpretation
     Keyboard Shortcuts
   [Expand]Examples
  [Expand]Image and Data Browsing
  [Expand]Docking and Popups
  [Expand]Site Navigation and Layout
  [Expand]File Management
  [Expand]Multi-Use Site Controls
  [Expand]Scheduler
  [Expand]HTML Editor
  [Expand]Pivot Grid
  [Expand]Tree List
  [Expand]Gauges
  [Expand]Data Editors
  [Expand]Spell Checker
  [Expand]Query Builder
 [Expand]ASP.NET MVC Extensions
 [Expand]Localization
 [Expand]Redistribution and Deployment
  Get More Help
 [Expand]API Reference
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Document Server
[Expand]Reporting
[Expand]Report Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation

Sub-Document

Expanded Overview

The document's entire content is divided into individual parts - sub-documents. A list of all sub-documents is stored within the Document Model. A sub-document to which the cursor position (or intervals of the current selection) belongs is the active sub-document. The available client-side API commands work with the active sub-document.

Expanded Sub-Document Types

The following sub-document types are available.

  • Main Sub-Document
    In a document, at least one sub-document always exists, it is the main sub-document. There is always a single instance of the main sub-document, and it is active by default. The main sub-document delivers the basic document functionality that is common for the header, footer and the main document body. The length of the main sub-document's text buffer affects the number of pages (Page layout elements) in the RichEdit Document Layout.

  • Header or Footer
    A header or footer is represented by an individual sub-document. The header (or footer) can be different for odd pages, even pages or the first page. So, there usually are several sub-document instances of the header (or footer) type: one sub-document for each header (or footer) with unique settings. As a rule, one sub-document of the header (or footer) type is bound to several Page Area layout elements on several Pages. (See the Sections topic for more details.)

  • Text box
    Each text box is represented by an individual sub-document. (See the Floating Objects topic for more details.)

Expanded Structural Elements

A sub-document provides access to the current customization information of its main structural elements listed below. These elements are parts of the sub-document's Text Buffer.

Expanded Client API

To access the document's active sub-document on the client, use the RichEditDocument.activeSubDocument property in the following notation:
clientRichEditName.document.activeSubDocument

The active sub-document is implemented as a SubDocument object. It exposes the following API resources, which can be used in the notation given below:
clientRichEditName.document.activeSubDocument.propertyName

Member Name Link Description
type SubDocument.type Gets a value specifying the sub-document type.
id SubDocument.id Gets the sub-document identifier.
text SubDocument.text Gets the document's textual representation.
length SubDocument.length Gets the character length of the document.
paragraphsInfo SubDocument.paragraphsInfo Provides information about paragraphs contained in the document.
tablesInfo SubDocument.tablesInfo Provides information about tables contained in the document.
bookmarksInfo SubDocument.bookmarksInfo Provides information about document bookmarks.
inlinePicturesInfo SubDocument.inlinePicturesInfo Provides access to an array of objects containing in-line picture settings.
fieldsInfo SubDocument.fieldsInfo Provides information about fields in the current document.
findFields SubDocument.findFields Returns all fields contained in the specified interval.
findTables SubDocument.findTables Returns a table if its interval includes the specified position.

You also can use the ASPxClientRichEdit.ActiveSubDocumentChanged method that fires when an active sub-document is substituted with another one.

Is this topic helpful?​​​​​​​