Storing custom data for all page types

If you need to add raw data to a page, regardless of its page type and corresponding data types, use the NodeCustomData column of the CMS_Tree database table, or the DocumentCustomData column of the CMS_Document table.

The columns are not editable from the administration interface. You can access the columns in the API using properties of objects of the TreeNode class:

  • TreeNode.NodeCustomData
  • TreeNode.DocumentCustomData

Store and retrieve data using the indexer notation. The data is automatically serialized to an XML key-value structure and can be persisted in the database. For example, the custom data: 

Storing a collection of custom values

treeNode.NodeCustomData["Data1"] = "Value 1";
treeNode.NodeCustomData["Data2"] = "Value 2";

// Persists the changes in the database

Results in the following XML structure:

Internal XML structure

        Value 1
        Value 2

Access the data in code using specified key values:

// Retrieves 'Value 1'
var data = treeNode.NodeCustomData["Data1"];