Koola.ParentDropDown 1.0.0

dotnet add package Koola.ParentDropDown --version 1.0.0
                    
NuGet\Install-Package Koola.ParentDropDown -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Koola.ParentDropDown" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Koola.ParentDropDown" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Koola.ParentDropDown" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Koola.ParentDropDown --version 1.0.0
                    
#r "nuget: Koola.ParentDropDown, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Koola.ParentDropDown@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Koola.ParentDropDown&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Koola.ParentDropDown&version=1.0.0
                    
Install as a Cake Tool

Koola Parent Drop Down Property Editor

This package provides a custom Umbraco property editor UI:

  • Alias: Koola.ParentDropDown.PropertyEditorUi
  • Label: Koola Parent Drop Down
  • Storage schema: Umbraco.Plain.String

The editor loads child content items from a root node defined on the parent content item, and allows selection via:

  • Checkbox list
  • Radio list
  • Single dropdown

What It Does

On a content item where this editor is used:

  1. It finds the current item's parent.
  2. It reads a configured parent property (for example category) that points to a root node.
  3. It loads the root node's direct children.
  4. It renders those children as selectable options.
  5. It stores selected key(s) as CSV string of GUIDs.

It can optionally display a child property (for example altTitle) as the option label.

Data Type Configuration

When creating a Data Type using this editor, configure:

  1. Parent Root Picker Alias (rootPickerAlias)
    The alias of a property on the parent content item that contains the root picker value.

  2. Display Property Alias (Optional) (displayPropertyAlias)
    The alias of a property on each child item to display as title.
    If missing/empty, the content name is used.

  3. Selection Mode (selectionMode)
    Options:

    • checkbox
    • radio
    • dropdown Default: checkbox
  4. Ignore Missing Parent (ignoreMissingParent)

    • Type: checkbox/toggle
    • Default: false
    • When enabled, parent-missing scenarios do not show a configuration error. The editor shows Not required instead.

Selection Mode Examples

Checkbox Mode

Configuration:

  • rootPickerAlias = category
  • displayPropertyAlias = altTitle (optional)
  • selectionMode = checkbox

Behavior:

  • Shows list of checkboxes.
  • Allows multiple selections.
  • Stored value is CSV, for example:
cb25380f-bd63-4e86-b681-f995bde0b62f,8ecab0e2-5db4-4b8a-ad6f-5f49060117ba

Radio Mode

Configuration:

  • rootPickerAlias = category
  • displayPropertyAlias = altTitle (optional)
  • selectionMode = radio

Behavior:

  • Shows radio button list.
  • Allows one selection.
  • Stored value is one GUID:
cb25380f-bd63-4e86-b681-f995bde0b62f

Configuration:

  • rootPickerAlias = category
  • displayPropertyAlias = altTitle (optional)
  • selectionMode = dropdown

Behavior:

  • Shows a single <select> dropdown.
  • Allows one selection.
  • Stored value is one GUID:
cb25380f-bd63-4e86-b681-f995bde0b62f

Display Label Resolution

If displayPropertyAlias is provided (for example altTitle), the editor/API attempts to use that property value from each child item.

Fallback order:

  1. displayPropertyAlias value (invariant/culture-aware lookup)
  2. Content Name
  3. Unnamed (<key>)

If displayPropertyAlias is not configured, it always uses content Name.

Ignore Missing Parent Behavior

When ignoreMissingParent = true, the editor will show:

  • headline: Not required
  • message: Not required

instead of a Configuration Error for parent-missing style cases, such as:

  • current content cannot be resolved
  • current content has no parent
  • parent content cannot be resolved

Other configuration errors (for example missing rootPickerAlias) still show as configuration errors.

Value Converter Behavior (Razor)

The value converter returns:

  • IEnumerable<IPublishedContent>

It intentionally excludes:

  • Missing content
  • Recycle bin/deleted content

This reduces front-end rendering errors from stale stored values.

Test Site Access

The included test site project is:

  • Koola.ParentDropDown.TestSite

Default local URLs from launch settings:

  • https://localhost:44383
  • http://localhost:51282

Backoffice login URL:

  • https://localhost:44383/umbraco

Credentials:

  • User: admin@admin.com
  • Password: Password123

These are configured for unattended install in Koola.ParentDropDown.TestSite/appsettings.json.

Quick Local Test Flow

  1. Run the test site (IIS Express or Project profile).
  2. Open backoffice at https://localhost:44383/umbraco.
  3. Log in with credentials above.
  4. Ensure parent item has picker property (for example alias category) with root selected.
  5. Create/edit a Data Type using this editor:
    • Set rootPickerAlias to the parent picker alias.
    • Optionally set displayPropertyAlias to altTitle.
    • Set selectionMode to desired mode.
  6. Apply Data Type to document type and open content editor.

Troubleshooting

Failed to load content options (401)

  • User lacks required backoffice permissions (Content section access).
  • Session/auth token expired; reload backoffice and retry.

Editor shows no options

  • Parent item does not exist or has no parent.
  • rootPickerAlias is wrong.
  • Parent picker value is empty or points to non-existing content.
  • Root item has no children.

Selection mode does not change

  • Verify selectionMode saved in Data Type config.
  • Reopen content item / hard refresh backoffice after changing Data Type settings.

displayPropertyAlias not used

  • Confirm exact alias spelling/casing in Data Type setting.
  • Ensure child items have values for that property.
  • If empty, fallback to content name is expected.

Ignore Missing Parent does not seem to work

  • Verify ignoreMissingParent is enabled in the Data Type configuration.
  • Reopen content item / hard refresh after Data Type changes.
  • It only suppresses parent-missing scenarios; invalid configuration still shows errors.
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 97 2/27/2026

Initial public package metadata update. Includes README and LICENSE packaging support and configurable parent-driven option rendering.