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:
- Open your administration project in Visual Studio.
- Create a custom module class.
- Add the class into a custom Class Library project within the solution.
- Override the module’s OnInit method and and register your UniGrid transformations.
- Call the UniGridTransformations.Global.RegisterTransformation method for each transformation.
- 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>
...