Umbraco DataTypes. Получить список возможных типов данных. - PullRequest
1 голос
/ 12 апреля 2010

У меня есть свойство в umbraco, которое использует раскрывающийся тип данных с набором предварительных значений, из которых вы можете выбрать.

Как получить список всех возможных предварительных значений, которые есть в этом раскрывающемся списке?

Ответы [ 3 ]

1 голос
/ 15 апреля 2010

В umbraco.library есть вспомогательный метод, который делает это.

Из xslt:

<xsl:variable name="prevalues" select="umbraco.library:GetPreValues(1234)" />

Из кода:

using umbraco;
XPathNodeIterator prevalues = library.GetPrevalues(1234);

Замените 1234 на идентификатор вашего типа данных (вы можете увидеть его внизу браузера, когда наводите указатель мыши на тип данных в разделе для разработчиков)

Привет
Джеспер Хауге

0 голосов
/ 05 мая 2015

Я знаю, что это старый вопрос, но я создал этот метод на основе информации, представленной в этом ответе, и я думаю, что это стоит документировать:

public static class UmbracoExtensions
{
    public static IEnumerable<string> GetDropDownDataTypeValues(int dataTypeId)
    {
        var dataTypeValues = umbraco.library.GetPreValues(dataTypeId);
        var dataTypeValuesEnumerator = dataTypeValues.GetEnumerator();
        while (dataTypeValues.MoveNext())
        {
            dynamic dataTypeItem = dataTypeValues.Current;
            yield return dataTypeItem.Value;
        }
    }
}
0 голосов
/ 13 августа 2010

Вот код, который я использую в одном из моих типов данных Umbraco, чтобы получить DropDownList, содержащий все возможные предварительные значения:

var prevalues = PreValues.GetPreValues(dataTypeDefinitionId);
DropDownList ddl = new DropDownList();

if (prevalues.Count > 0)
{
    for (int i = 0; i < prevalues.Count; i++)
    {
        var prevalue = (PreValue)prevalues[i];
        if (!String.IsNullOrEmpty(prevalue.Value))
        {
            ddl.Items.Add(new ListItem(prevalue.Value, prevalue.DataTypeId.ToString()));
        }
    }
}

Замените dataTypeDefinitionId на идентификатор вашего типа данных.

...