1

我在 umbraco 中有一个属性,它使用带有一组预值的下拉数据类型,您可以从中进行选择。

如何检索此下拉列表中所有可能的预值的列表?

4

3 回答 3

1

umbraco.library 中有一个辅助方法可以做到这一点。

来自 xslt:

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

从代码:

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

将 1234 替换为您的数据类型的 id(将鼠标悬停在开发人员部分的数据类型上时,您可以在浏览器底部看到它)

问候
杰斯珀豪格

于 2010-04-15T09:42:12.717 回答
0

这是我在我的 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 替换为您的数据类型的 id。

于 2010-08-13T11:40:26.163 回答
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;
        }
    }
}
于 2015-05-05T07:22:48.030 回答