Типы данных Umbraco и текстовое значение из кода - PullRequest
1 голос
/ 29 ноября 2010

Я пытаюсь получить текстовое значение раскрывающегося списка из API, и я серьезно изо всех сил.

Это то, что у меня есть на данный момент:

Document doc = new Document(Node.GetCurrent().Id);

doc.GetProperty("fieldPropertyName").Value;

Возвращает строковое представление идентификатора для предварительного значения.

Мне нужен текст для этого предварительного значения.

Заранее спасибо за помощь.

Ответы [ 3 ]

4 голосов
/ 03 мая 2011

Использовать библиотечную функцию ...

var stringValue = umbraco.library.GetPreValueAsString(Convert.ToInt32(doc.GetProperty("fieldName").Value));
0 голосов
/ 28 января 2014

используйте следующий код

aspx page

 <asp:DropDownList ID="ddlLocation" ClientIDMode="Static" runat="server" AutoPostBack="true" CssClass="selectbox" OnSelectedIndexChanged="ddlLocation_SelectedIndexChanged" />

Код позади

  var regionItems = regionFolder.Children;
            if (regionItems.Count > 0) {
                foreach (Node region in regionItems) {
                    if (region.GetProperty(FieldName.REGIONNAME) != null && !string.IsNullOrEmpty(region.GetProperty(FieldName.REGIONNAME).Value)) {
                        ddlLocation.Items.Add(new ListItem(region.GetProperty(FieldName.REGIONNAME).Value, region.Id.ToString()));
                    }
                }
            }
            //ddlLocation.Items.Insert(0, "Choose");
            ddlLocation.Items.Insert(0, new ListItem("Choose", "0"));

здесь REGIONNAME = имя нашего поля,

0 голосов
/ 30 ноября 2010

Пожалуйста, извините, что это в VB.

Это язык, на котором я случайно развивался. (Как бы я хотел использовать C #)

Imports System.Runtime.CompilerServices
Imports umbraco.cms.businesslogic.web
Imports umbraco.cms.businesslogic.datatype

Module UmbracoExtensionHelper


    <Extension()>
    Public Function GetCustomPropertyValueFromPreValues(ByVal doc As Document, ByVal propertyName As String)
        Dim returnValue As String = ""
        Dim objProperty As umbraco.cms.businesslogic.property.Property = doc.getProperty(propertyName)

        If objProperty IsNot Nothing Then
            Dim objPreValues = PreValues.GetPreValues(objProperty.PropertyType.DataTypeDefinition.Id)
            If objPreValues IsNot Nothing Then

                ''run through the ids of the datatypes and the value of the property
                For Each entry As DictionaryEntry In objPreValues
                    Dim currentPreValue As PreValue = CType(entry.Value, PreValue)
                    If currentPreValue.Id.ToString().ToLower() = objProperty.Value.ToString().ToLower() Then
                        returnValue = currentPreValue.Value.ToLower()
                        Exit For
                    End If
                Next

            End If
        End If

        Return returnValue
    End Function




End Module
...