代码之家  ›  专栏  ›  技术社区  ›  Riina

umbraco数据类型。检索可能的数据类型列表。

  •  1
  • Riina  · 技术社区  · 14 年前

    我在Umbraco中有一个属性,它使用一个下拉数据类型,其中包含一组可以从中选择的prevlues。

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

    3 回复  |  直到 9 年前
        1
  •  1
  •   Hauge    14 年前

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

    从XSLT:

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

    源代码:

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

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

    当做
    杰斯帕·豪格

        2
  •  0
  •   azzlack    14 年前

    以下是我在其中一个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。

        3
  •  0
  •   Murven    9 年前

    我知道这是一个古老的问题,但我根据这个答案中提供的信息创建了这个方法,我认为它值得记录:

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