Custom property for selecting Visitor Groups
This custom property will render a checkbox list of all visitor groups, allowing multiple selections.
Add a reference to EPiServer.ApplicationModules.
using EPiServer.Personalization.VisitorGroups;
namespace MySite.Website.Plugins.SpecializedProperties.VisitorGroups
{
[PageDefinitionTypePlugIn(DisplayName = "Visitor Group selection")]
public class PropertyVisitorGroups : PropertyMultipleValue
{
public override IPropertyControl CreatePropertyControl()
{
return new PropertyVisitorGroupsControl();
}
}
public class PropertyVisitorGroupsControl : PropertySelectMultipleControlBase
{
protected override void SetupEditControls()
{
var repository = new VisitorGroupStore(DynamicDataStoreFactory.Instance);
var list = repository.List()
.OrderBy(v => v.Name)
.Select(v => new ListItem(v.Name, v.Id.ToString())
{
Selected = ((PropertyMultipleValue) PropertyData).IsValueActive(v.Id.ToString())
})
.ToArray();
EditControl.Items.AddRange(list);
}
}
}
Comments