Pregunta

Tengo una propiedad en umbraco que utiliza un menú desplegable de tipo de datos con un conjunto de prevalues ??que se puede elegir.

¿Cómo recuperar una lista de todos los posibles prevalues ??que se encuentran en esta lista desplegable?

¿Fue útil?

Solución

No es un método de ayuda en umbraco.library que hace eso.

A partir de XSLT:

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

A partir de código:

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

Reemplazar 1234 con el id de su tipo de datos (Se puede ver en la parte inferior de su navegador cuando se pasa el ratón sobre el tipo de datos en la sección de desarrolladores)

Saludos
Jesper Hauge

Otros consejos

Este es el código que utilizo en uno de mis tipos de datos Umbraco para obtener un DropDownList que contiene todas las posibles 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()));
        }
    }
}

Reemplazar dataTypeDefinitionId con el identificador de su tipo de datos.

Yo sé que esto es una vieja pregunta, pero creó este método basado en la información proporcionada en esta respuesta y creo que vale la pena documentar:

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;
        }
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top