質問

私はあなたがから選択することができprevaluesのセットとデータ型のドロップダウンを使用していますumbracoでプロパティを持っています。

どのように私はこのドロップダウン・リストにあるすべての可能なprevaluesの一覧を取得するのですか?

役に立ちましたか?

解決

がありそれを行うumbraco.libraryでのヘルパーメソッドがあります。

XSLTから:

<xsl:variable name="prevalues" select="umbraco.library:GetPreValues(1234)" />
コードから

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

あなたのデータ型のIDで1234を取り付けます(開発者セクションにデータ型の上にマウスを移動するときは、お使いのブラウザの底にそれを見ることができます)。

よろしく
ジェスパーHaugeの

他のヒント

ここで私はすべての可能なprevaluesを含むDropDownListコントロールを得るために、私Umbracoのデータ型のいずれかで使用するコードです。

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