2010-04-12 1 views
1

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

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

ответ

1

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

От XSLT:

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

Из кода:

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

Replace 1234 с идентификатором вашего типа данных (Вы можете увидеть его в нижней части окна браузера при наведении курсора мыши на тип данных в разделе разработчиков)

с уважением
Jesper Hauge

0

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

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())); 
     } 
    } 
} 

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

0

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

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; 
     } 
    } 
}