Serialization in Diagram Control

4 Dec 20242 minutes to read

Serialization is the process of saving and loading for state persistence of the diagram.

Save

The diagram is serialized as string while saving. The client-side method, saveDiagram helps to serialize the diagram as a string.

var diagramElement = document.getElementById('element');
var diagram = diagramElement.ej2_instances[0];
var saveData;
//returns serialized string of the Diagram
saveData = diagram.saveDiagram();

This string can be converted to JSON data and stored for future use.

//Saves the string in to local storage
localStorage.setItem('fileName', saveData);
saveData = localStorage.getItem('fileName');

Diagram can also be saved as raster or vector image files. For more information about saving the diagram as images, refer to Print and Export.

Load

Diagram is loaded from the serialized string data by client-side method, loadDiagram.

var diagramElement = document.getElementById('element');
var diagram = diagramElement.ej2_instances[0];

//Loads the Diagram from saved json data
diagram.loadDiagram(saveData);

NOTE

Before loading a new diagram, existing diagram is cleared.

Loaded Event

The loaded event triggers when all diagram elements are loaded using loadDiagram method. You can use this event to customize diagram elements during the loading process.

 let diagram: Diagram = new Diagram ({
          width: '100%', height: 900,
           loaded:(args: ILoadedEventArgs) {
            //You can use this event to customize diagram elements during the loading process.
      }
 })

The event has two arguments such as name, diagram

name

Type: String

Description: Returns the event name.

diagram

Type: Diagram

Description: Returns the diagram model properties.

Users can perform customizations or modifications to the diagram elements once the loading process is complete.

Prevent Default Values

The preventDefaults property of serializationSettings is used to simplifying the saved JSON object without adding the default properties that are presented in the diagram.

var diagram: Diagram = new Diagram({
 serializationSettings: { preventDefaults: true },
});