The TX Text Control document editor available for ASP.NET MVC and Angular is initialized as a singleton instance on an HTML page. Similar to MVC partial views or routes in Angular, usually the editor must be removed from the DOM and recreated at the new location. But some layouts require a fast initialization process and a fluent switch between instances such as in tab views:

TX Text Control in Bootstrap Tabs

Bootstrap Tab Pages

For these cases, the fully created editor can be moved within the DOM into a new active tab page. Consider the following Bootstrap layout:

Loading...

The editor is encapsulated into an additional DIV element with the id tx-editor. On switching the active tab pages, this complete element is moved to the new active tab page. Additionally, the content of the current instance is saved to the local storage and restored when switching back. In the following JavaScript (jQuery) code, two events are attached to the tab list view:

  • hide.bs.tab: Occurs when the previous tab is about to be hidden.
  • show.bs.tab: Occurs when the newly active tab is about to be shown.
Loading...

Saving the Document

For the previous tab, the document is saved using the saveDocument TX Text Control .NET Server for ASP.NET
JavaScript API
TXTextControl Object
saveDocument Method
Saves the current document in a certain format and sends the result back asynchronously by calling a given callback function.
method and stored in a local storage variable with the associated tab name (aria-controls).

Loading...

Loading the Document

For the current tab, the local storage is checked for a previously stored document. If a document has been found, it is loaded into the document editor using the loadDocument TX Text Control .NET Server for ASP.NET
JavaScript API
TXTextControl Object
loadDocument Method
Loads text in a certain format.
method. After that, the editor element is moved to the new tab page location in the DOM using the appendTo method:

Loading...

If no document has been stored for the currently active tab, the content is reset and the element is moved:

Loading...