I came across a requirement from a client that they wanted to show Country and it’s states grouped in a dropownlist. I created a custom grouped dropdown to fit into the scenario. Since this is an extension of dropdownlist, no speak knowledge required.
Let’s get started
Step 1: Create custom dropdown list
Create a custom dropdownlist under /sitecore/system/Settings/Forms/Field Types/Lists based on Field Type(/sitecore/templates/System/Forms/Field Type) template like below
Step 2: Create a code behind class and razor view
create a code behind class like this in VS project
public class StateDropdown : DropDownListViewModel
protected override void InitItemProperties(Item item)
protected override void UpdateItemFields(Item item)
public Dictionary<string, Dictionary<string, string>> Regions()
if(string.IsNullOrEmpty(DataSource)) return new Dictionary<string, Dictionary<string, string>>();
Dictionary<string, Dictionary<string, string>> counrtyCollection = new Dictionary<string, Dictionary<string, string>>();
Item item = Context.Database.GetItem(DataSource);
var children = item.GetChildren();
foreach (Item child in children)
counrtyCollection.Add(child.Fields["Name"].Value, new Dictionary<string, string>());
foreach (Item desc in child.Children)
Create a razor view like this and build project
var regions = Model.Regions();
<label for="@Html.IdFor(m => Model.Value)" class="@Model.LabelCssClass">@Html.DisplayTextFor(t => Model.Title)</label>
<select id="@Html.IdFor(m => Model.Value)" data-trigger name="@Html.NameFor(m => Model.Value)" class="@Model.CssClass" placeholder="Select Your Work Location" data-sc-tracking="@Model.IsTrackingEnabled" data-sc-field-name="@Model.Name" @Html.GenerateUnobtrusiveValidationAttributes(m => m.Value)>
<option placeholder>Select Your Work Location</option>
@foreach (var region in regions)
<optGroup data-id="@region.Value" label="@region.Key">
@foreach (var state in region.Value)
@Html.ValidationMessageFor(m => Model.Value)
Step 3: Fill out the fields
Fill out the View Path, Model Type and Property Editor(should be Property Editor Settings/DropDown List).
you are now all set to utilize the custom dropdown list in Forms Designer. Don’t forget to publish the field!
Hope this is helpful. Any questions, please leave a comment.
Have you submitted a form and it returned with this error ‘The required anti-forgery cookie “__requestVerificationToken” is not present’? If so, here is the resolution.
This could be because of caching. Can you check if your rendering component or container/page level caching check box is checked? if so, unchecking the caching will fix the issue.
Also here is quick check you can do to see whether your form is cached – Inspect the form and check the _requestverificationtoken value like below and refresh the page – do you see same value now? if so, your form is in cache!
I’m participating in Sitecore Hackathon for the first time this year. One of the requirement is to have sitecore 9.1(Initial version) installed on your machine. So I want to share my experience how i quickly installed Sitecore 9.1 using SIF on developer machine in 5 easy steps. This post includes the prerequisites, preparation and installation.
OS: Windows 10, Windows Server 2016
Microsoft SQL Server 2017 or 2016 SP2 – Supports the XM database and is the required for the xDB
Microsoft SQL Server 2014 Sp2 – Only supports XM databases and does not support the xDB
MongoDB Server 3.6.6 – This is required if you are going to use MongoDB for the Collection database or as a Session State Provider
Sitecore XP 9.1.0 requires .NET Framework 4.7.1
Sitecore Identity server requires .NET Core Runtime 2.1.3
You must apply any available updates to the .NET Framework on every Sitecore installation
Solr 7.2.1 – Default search provider
Azure Search – supported and recommended for Azure Cloud PaaS deployments only
Lucene – Only supports content search and does not support xConnect.
Powershell 5.1 – for Installing SIF
Download installation package(XP Single) from here
Extract the zip file you just downloaded
Again extract this file – XP0 Configuration files 9.1.0 rev. 001564.zip
Copy your license.xml file (If you have enrolled for Hackathon, you should have received the file in email)
This is a proctor guided exam, no book allowed. Also, the exam software Senitel says you should have an external web camera. It worked with the in-built camera on my work computer. So don’t worry about the external camera.
The exam has 50 questions and 90 minutes to complete. You can review the answers as many times as you want. I completed the exam in 30 minutes and review the answers in the next 30 minutes and I still have 30 more minutes left!
Overall I got a 88% score. Here is my Topic level scoring:
Architecture: 100% Creating and Editing Items: 100% Development Environment: 75% Docs and Support: 100% Installation: 100% Publishing: 100% xManagement: 100% Field Types: 83% Media: 100% Templates: 85% Versioning: 100% Presentation: 77% API: 100% Modules and Packages: 100% Performance: 100% Search: 80%
Once you complete you exam, you will receive an email from test center with score and certification pdf file. Good luck!
Sitecore Professional Developer – This examination is for Version 8.2
Sitecore Certified Platform Associate Developer – This is for Version 9.0