Nesting Dictionary items to create lists

Storing and reading nested Dictionary items as lists in Umbraco using API

Recently I wrote an article about workaround for storing lists in Umbraco. I did some googling and Umbraco API exploring since then I found another solution for lists in Umbraco.

This solution is relying to Umbraco Dictionary. As dictionary items allow child elements, you can organize your lists as a list of children of a parent dictionary key. It is a good practice anyway to keep dictionary item grouped one into each other for the better organization into logical areas (check article mentioned in related links on this page).

Nested Dictionary

    private IEnumerable<IDictionaryItem> GetInnerDictionaryItems(string ParentDictionaryKey)
    {
        Umbraco.Core.Services.ILocalizationService localizationService = ApplicationContext.Services.LocalizationService;
        IDictionaryItem parentItem = localizationService.GetDictionaryItemByKey(ParentDictionaryKey);
        if (parentItem != null)
        {
            return localizationService.GetDictionaryItemChildren(parentItem.Key);
        }
        return null;
    }
    

This approach is better than one mention in the beginning but it also has one big disadvantage. It can only list stings, not value pair as in mentioned article which uses XML to store lists and text and value fro each list item.

Note

There is a bug related to LocalizationService and Dictinary items listing in Umbraco versions 6.0.4, 6.1.4, 6.1.5 and it is fixed starting from 6.2.2

More about mentioned issues for older Umbraco versions check here http://issues.umbraco.org/issue/U4-2640

References

Disclaimer

Purpose of the code contained in snippets or available for download in this article is solely for learning and demo purposes. Author will not be held responsible for any failure or damages caused due to any other usage.


About the author

DEJAN STOJANOVIC

Dejan is a passionate Software Architect/Developer. He is highly experienced in .NET programming platform including ASP.NET MVC and WebApi. He likes working on new technologies and exciting challenging projects

CONNECT WITH DEJAN  Loginlinkedin Logintwitter Logingoogleplus Logingoogleplus

.NET

read more

JavaScript

read more

SQL/T-SQL

read more

PowerShell

read more

Comments for this article