Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at

  • Ólafur Hólm Eyþórsson 3 posts 94 karma points
    Mar 18, 2019 @ 18:04
    Ólafur Hólm Eyþórsson

    V8 Prevalues from a specific data type

    Hi, how do i get the prevalues from a specific data type in v8 ?

    at my work place we've always been doing the example below in v7

    public static string GetPreValue(string id)
       var value = string.Empty;
       if (!string.IsNullOrEmpty(id))
           int preId = 0;
           var parse = Int32.TryParse(id, out preId);
           if (parse)
               var helper = new UmbracoHelper(UmbracoContext.Current);
               value = helper.GetPreValueAsString(preId);
       return value;


    public List<SelectListItem> GetPreValuesFromDataTypeId(int dataTypeId)
                List<SelectListItem> preValueSelectorList = new List<SelectListItem>();
                XPathNodeIterator iterator = umbraco.library.GetPreValues(dataTypeId);
                XPathNodeIterator preValues = iterator.Current.SelectChildren("preValue", "");
                while (preValues.MoveNext())
                    string preValueIdAsString = preValues.Current.GetAttribute("id", "");
                    int preValueId = 0;
                    int.TryParse(preValueIdAsString, out preValueId);
                    string preValue = preValues.Current.Value;
                    preValueSelectorList.Add(new SelectListItem { Value = preValue, Text = preValue });
                return preValueSelectorList;

    but that is no longer possible to do :/

    So any information on this would be of appreciated :)

  • David Knittl 11 posts 112 karma points
    Mar 20, 2019 @ 12:10
    David Knittl


    I have a similar problem. I also work with the prevalues of a dropdown field in my code. In v7 I accessed the prevalues through


    That's not working any more in v8. Now through debugging I found a property called "Configuration" on the IDataType interface. All prevalues are in there (I see them in debugging) and that object is of type


    Now if I try to access this property and cast it to DropDownFlexibleConfiguration (or if I use the "ConfigurationAs

    Does anyone have an idea how to access the prevalues in v8?

    Cheers, David

  • Philip Hayton 38 posts 201 karma points
    Apr 27, 2019 @ 09:52
    Philip Hayton

    Did anybody get to the bottom of this?

  • Rhys Hamilton 140 posts 940 karma points
    May 22, 2019 @ 09:18
    Rhys Hamilton

    I'm not sure if this is the best way to do this, but a sample class that I've put together, returns the ID for a prevalue that matches a string value (e.g - the id for "Item1" in my dropdown list). It's a bit specific to my use case, but it retrieves the prevalues perfectly for me.

    private readonly IDataTypeService _dataTypeService;
    public DefaultComposer(IDataTypeService dataTypeService)
        _dataTypeService = dataTypeService;
    // Additional methods/logic can go here
    // etc. etc.
    // Returns the ID of the prevalue that matches the string value
    private int GetDataTypePreValues(int id, string value)
        var dataType = _dataTypeService.GetDataType(id); // The ID of the DataType you want to access
        ValueListConfiguration prevalues = (ValueListConfiguration)dataType.Configuration;
        int selected = 0;
        if (prevalues != null && prevalues.Items != null && prevalues.Items.Any())
            selected = prevalues.Items.Where(x => x.Value == value).Select(i => i.Id).FirstOrDefault();
        return selected;
  • Peter Aderhold 30 posts 203 karma points
    Jan 05, 2020 @ 13:12
    Peter Aderhold

    This is exactly the way we do it and it works.

  • andrew shearer 446 posts 559 karma points
    Sep 18, 2019 @ 20:16
    andrew shearer

    hello - is there an equivalent helper method of GetPreValueAsString in v8 yet? maybe on second thoughts we shouldn't be using it anyway as it results in a sql hit to get the prevalue.. from the cache would be better.

  • Rasmus Styrk 1 post 72 karma points
    Sep 24, 2019 @ 04:41
    Rasmus Styrk

    Hi guys,

    I got the prevalues for my dropdown field with this code.

    @using Umbraco.Core.Services;
    @using Umbraco.Core.PropertyEditors;
        IDataTypeService dataTypeService = Services.DataTypeService;
        IDataType dataType = dataTypeService.GetDataType(1154); // Change number to your id from the data types section in backoffice
        ValueListConfiguration prevalues = (ValueListConfiguration)dataType.Configuration;
        foreach (ValueListConfiguration.ValueListItem item in prevalues.Items) {
  • Mike Chambers 626 posts 1211 karma points c-trib
    Oct 09, 2019 @ 12:17
    Mike Chambers

    Just stumbled across this myself, but think prevalue id's now aren't unique? as seeing cloud udas..

    "EditorAlias": "Umbraco.CheckBoxList",
      "DatabaseType": 1,
      "Configuration": {"items":[{"id":1,"value":"Head of State"},{"id":2,"value":"Government Minister"},{"id":3,"value":"Civil Servant"},{"id":4,"value":"NGO Worker"},{"id":5,"value":"Teacher"},{"id":6,"value":"Student"},{"id":7,"value":"General Public"}]},

    and another checkboxlist on the same site..

      "EditorAlias": "Umbraco.DropDown.Flexible",
      "DatabaseType": 1,
      "Configuration": {"multiple":false,"items":[{"id":2,"value":"Course"},{"id":3,"value":"E-Book"},{"id":4,"value":"Event"},{"id":6,"value":"Network"},{"id":7,"value":"News"},{"id":10,"value":"Video"},{"id":9,"value":"External Link"},{"id":11,"value":"Briefing"},{"id":12,"value":"Report"},{"id":13,"value":"Learning Resource"},{"id":14,"value":"Teaching Resource"},{"id":15,"value":"Infographic"},{"id":16,"value":"Policy Document"},{"id":17,"value":"Webinar"},{"id":18,"value":"Paper"}]},

    and values stored in the db are json.. jsut the value.UmbracoPropertyData table

  • Phil Whittaker 62 posts 266 karma points MVP c-trib
    Dec 15, 2019 @ 09:55
    Phil Whittaker

    After lots of hunting around the code, the way that Umbraco 8 does this is

           var propEditor = Current.PropertyEditors.Where(x => x.Alias == dataType.EditorAlias).FirstOrDefault();
           var config = propEditor.GetConfigurationEditor().ToValueEditor(dataType.Configuration);

    The first line just gets you the property editor for the DataType, the second line is the important one, it returns an IDictionary

    This can be serialised into a json object

Please Sign in or register to post replies

Write your reply to: