Question

J'ai une propriété dans Umbraco qui utilise un type de données déroulant avec un ensemble de prévaleurs parmi lesquelles vous pouvez sélectionner.

Comment récupérer une liste de toutes les prévaleurs possibles présentes dans cette liste déroulante ?

Était-ce utile?

La solution

Il existe une méthode d'assistance dans umbraco.library qui fait cela.

Depuis XSLT :

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

À partir du code :

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

Remplacez 1234 par l'identifiant de votre type de données (vous pouvez le voir en bas de votre navigateur lorsque vous passez votre souris sur le type de données dans la section développeurs)

Salutations
Jesper Hauge

Autres conseils

Voici le code que j'utilise dans l'un de mes types de données Umbraco pour obtenir une DropDownList contenant toutes les prévaleurs possibles :

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

Remplacez dataTypeDefinitionId par l'identifiant de votre type de données.

Je sais que c'est une vieille question, mais j'ai créé cette méthode sur la base des informations fournies dans cette réponse et je pense qu'elle mérite d'être documentée :

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;
        }
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top