Adding custom UniGrid transformations

The UniGrid provides built-in transformations for easy formatting of the content of columns. To learn about the UniGrid transformations that are available by default, see the description of the externalsourcename column attribute in Reference - UniGrid definition.

If you need to display column values in a custom format, you can register your own UniGrid transformations:

  1. Open your administration project in Visual Studio.
  2. Create a custom module class.
    • Add the class into a custom Class Library project within the solution.
  3. Override the module’s OnInit method and and register your UniGrid transformations.
    • Call the UniGridTransformations.Global.RegisterTransformation method for each transformation.
  4. Implement the methods that define the functionality of your custom UniGrid transformations.

For basic execution of initialization code, you only need to register a “code-only” module through the API. You do NOT need to create a new module within the Modules application in the Xperience administration interface.

Example



using CMS;
using CMS.Base;
using CMS.DataEngine;
using CMS.UIControls;
using CMS.Helpers;
using CMS.PortalEngine;

// Registers the custom module into the system
[assembly: RegisterModule(typeof(CustomUniGridTransformationModule))]

public class CustomUniGridTransformationModule : Module
{
    // Module class constructor, the system registers the module under the name "CustomUniGridTransformations"
    public CustomUniGridTransformationModule()
        : base("CustomUniGridTransformations")
    {
    }

    // Contains initialization code that is executed when the application starts
    protected override void OnInit()
    {
        base.OnInit();

        // Registers the #customBoldText UniGrid transformation
        UniGridTransformations.Global.RegisterTransformation("#customBoldText", CustomBoldText);
    }

    // Method that defines the #customBoldText UniGrid transformation
    // Wraps the UniGrid column text value into a <strong> element
    private static object CustomBoldText(object parameter)
    {
        return "<strong>" + ValidationHelper.GetString(parameter, "") + "</strong>";
    }
}


Once a UniGrid transformation is registered, you can use it in the externalsourcename attribute of UniGrid columns.

Example



...

<GridColumns>
    <ug:Column Source="UserName" Caption="$general.username$" Width="100%" ExternalSourceName="#customBoldText" />
</GridColumns>

...