أنواع بيانات Umbraco. استرداد قائمة أنواع البيانات المحتملة.

StackOverflow https://stackoverflow.com/questions/2623700

  •  26-09-2019
  •  | 
  •  

سؤال

لديّ خاصية في Umbraco تستخدم نوع البيانات المنسدلة مع مجموعة من عمليات الانتشار التي يمكنك الاختيار منها.

كيف يمكنني استرجاع قائمة بجميع عمليات الانتشار المحتملة الموجودة في هذه القائمة المنسدلة؟

هل كانت مفيدة؟

المحلول

هناك طريقة مساعد في umbraco.library التي تفعل ذلك.

من XSLT:

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

من الكود:

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

استبدل 1234 بمعرف نوع البيانات الخاص بك (يمكنك رؤيته في الجزء السفلي من متصفحك عند تحوم الماوس على نوع البيانات في قسم المطورين)

يعتبر
جيبر هوج

نصائح أخرى

فيما يلي الرمز الذي أستخدمه في إحدى أنواع بيانات 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()));
        }
    }
}

استبدل 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