Frontend development

Configure custom widgets to support content locations

To configure your custom widget to support content locations, you must mark the widget with the following property:
[SitefinityWidget(IsContentLocation = true)]

GITHUB EXAMPLE: You can see an example of how to use this property in Sitefinity GitHub Repository » ContentListViewComponent.cs.

To support the content locations functionality, in the widget, you should also provide the following properties via the Entity object :

Property

Description

SelectedItems
(Required)

Holds the selected items.

ContentViewDisplayMode
(Optional)

Determines the behavior of the widget. It can be one of the following:

  • Automatic - Automatically determines whether to render the items in list mode or detail mode.
    This is the default behavior.
  • Master - Always displays items in list mode and does not handle additional parameters. 
  • Detail - Always displays items in detail mode based on the selection of the first item from the manually selected items. 

DetailPageSelectionMode (Optional)

Determines how to open the detail mode of content items inside the content widget:

  • SamePage - Opens the detail item in the same page.
  • ExistingPage - Opens the detail item in another existing page.
    Requires property DetailPage to be present. 

DetailPage
(Required, if ExistingPage is selected)

When you have chosen to open the detail mode of an item in another existing page, this property gets the details page. 

The following sample demonstrates how to use the above properties:

C#
// SelectedItems property

[Content] 
public MixedContentContext SelectedItems { get; set; } 

// ContentViewDisplayMode propery

public ContentViewDisplayMode ContentViewDisplayMode { get; set; } 

// DetailPageSelectionMode property

[DataType(customDataType: KnownFieldTypes.RadioChoice)] 
public DetailPageSelectionMode DetailPageMode { get; set; } 

// DetailPage property

[Content(Type = KnownContentTypes.Pages, AllowMultipleItemsSelection = false)] 
[ConditionalVisibility("{\"conditions\":[{\"fieldName\":\"DetailPageMode\",\"operator\":\"Equals\",\"value\":\"ExistingPage\"}],\"inline\":\"true\"}")] 
public MixedContentContext DetailPage { get; set; } 
Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.
New to Sitefinity?