我有一把umbraco使用一个下拉与一组prevalues的可供选择的数据类型的属性。

如何取回凡在此下拉列表中的可能prevalues列表?

有帮助吗?

解决方案

有一个在一个umbraco.library辅助方法,该方法做到这一点。

从XSLT:

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

从代码:

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

替换1234与您的数据类型的ID(您可以在浏览器底部看到了在开发部分的数据类型的悬停鼠标时)

的问候,点击 的Jesper豪格

其他提示

下面是代码,我在我一把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()));
        }
    }
}

您的数据类型的ID替换dataTypeDefinitionId。

我知道这是一个老问题,但我创建了一个基于这个答案提供的信息,这个方法,我认为这是值得归档:

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;
        }
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top