Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more
AI OnAI Off
Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more
Hi, Mark,
It's quite easy to create a CategorySelectionFactory. I don't think there is a built-in one, since there is PropertyCategoryList instead.
Here is a simple scenario:
[SelectionFactoryRegistration] public class CategorySelectionFactory : ISelectionFactory { public IEnumerable<ISelectItem> GetSelections(ExtendedMetadata metadata) { var categories = CategoryList.LoadCategories(); var selectItems = new List<ISelectItem>(); if (categories != null) { foreach (var cat in categories) { var category = Category.Find(cat); var catSelectItem = new SelectItem() { Text = category.LocalizedDescription, Value = category.ID }; selectItems.Add(catSelectItem); } } return selectItems; } }
Then, define the property:
[SelectOne(SelectionFactoryType = typeof(CategorySelectionFactory))] public virtual int SelectOneCategory { get; set; }
It will return you the category ID, which you can use to find the category later:
var category = Category.Find(cat);
BR,
Marija
Hi,
This must be easy but I can't find an example that I can get to work.
I have a page property that is populated by a category list and this works fine by default allowing the user to select one or more categories from the list. I need to add another property which is also populated by a category list however this one should be single select only.
I have found the SelectOne attribute which looks like it should work however this prevents the category list being loaded.
Any thoughts or suggestions appreciated as always.
Thanks,
Mark