Enterspeed Grid Editor Value Converters
A grid editor value converter is a class that will convert the input value from an Umbraco grid editor into an IEnterspeedProperty.
To implement your own converter you need to implement the IEnterspeedGridEditorValueConverter interface
If no converter is registered for the grid editor, the DefaultGridLayoutPropertyValueConverter will try
to convert it into an IEnterspeedProprety automatically, by looking at the types.
IEnterspeedGridEditorValueConverter
This interface contains two methods that need to be implemented
IsConverter
bool IsConverter(string alias);
This method is called when the EnterspeedGridEditorService tries to find the correct converter for this grid editor.
An implementation of this method could look like this:
public bool IsConverter(string alias)
{
return alias.InvariantEquals("rte");
}
Convert
IEnterspeedProperty Convert(GridControl editor, string culture)
This is the method that is converting the Umbraco grid editor to an IEnterspeedProperty.
An implementation of this method could look like this:
public IEnterspeedProperty Convert(GridControl editor, string culture)
{
return new StringEnterspeedProperty(editor.Value.ToString());
}
Registering a converter
Converters are registered in Umbraco via an IComposer.
Umbraco 9+
public class MyCustomerGridEditorValueConverterComposer : IComposer
{
public void Compose(IUmbracoBuilder builder)
{
builder.EnterspeedGridEditorValueConverters()
.Append<MyCustomGridEditorValueConverter>();
}
}
Umbraco 8
[RuntimeLevel(MinLevel = RuntimeLevel.Run)]
public class MyCustomerGridEditorValueConverterComposer : IUserComposer
{
composition.EnterspeedGridEditorValueConverters()
.Append<MyCustomGridEditorValueConverter>();
}
Note that the EnterspeedGridEditorService will find the converters in the order that they are registered, which means that, if you want to replace a default converter with your own, you need to insert your converter like this:
Umbraco 9+
public class MyCustomerPropertyValueConverterComposer : IComposer
{
public void Compose(IUmbracoBuilder builder)
{
builder.EnterspeedGridEditorValueConverters()
.InsertBefore<DefaultRichTextEditorGridEditorValueConverter, MyCustomGridEditorValueConverter>();
}
}
Umbraco 8
[RuntimeLevel(MinLevel = RuntimeLevel.Run)]
public class MyCustomerPropertyValueConverterComposer : IUserComposer
{
composition.EnterspeedGridEditorValueConverters()
.InsertBefore<DefaultRichTextEditorGridEditorValueConverter, MyCustomGridEditorValueConverter>();
}
Default converters
Enterspeed ships with default grid editor value converters for some of the built-in grid editors that Umbraco ships with out of the box.