Frage

Ich habe eine Eigenschaft in umbraco, die ein Drop-Down-Datentyp mit einem Satz von prevalues ??verwendet, dass Sie auswählen können.

Wie rufe ich eine Liste aller möglichen prevalues, die in dieser Dropdown-Liste ist?

War es hilfreich?

Lösung

Es gibt eine Hilfsmethode in umbraco.library, die das tut.

Von Xslt:

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

Von dem Code ein:

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

Ersetzen Sie 1234 mit der ID des Datentyp (Sie können es im unteren Bereich des Browsers angezeigt, wenn Sie die Maus über den Datentyp in dem Entwickler Abschnitt schweben)

Viele Grüße
Jesper Hauge

Andere Tipps

Hier ist der Code, dass ich in einem meiner Umbraco Datentypen verwenden, um ein Dropdownlist zu bekommen alle möglichen prevalues ??enthalten:

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

Ersetzen dataTypeDefinitionId mit der ID Ihres Datentyp.

Ich weiß, dass dies eine alte Frage, aber ich schaffte dieses Verfahren auf der Grundlage der Informationen, die in dieser Antwort zur Verfügung gestellt, und ich denke, es lohnt Dokumentieren ist:

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;
        }
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top