2010-04-12 90 views

回答

1

在umbraco.library中有一個輔助方法可以做到這一點。

從XSLT:

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

從代碼:

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

替換1234與您的數據類型的ID(您可以在數據類型懸停鼠標時,在瀏覽器的底部看到它在開發人員部分)

Regards
Jesper Hauge

0

下面是我在一把umbraco數據類型之一用它來獲得一個包含所有可能的prevalues一個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與您的數據類型的ID。

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