我想從API中獲取下拉列表的文本值,我正在嚴重掙扎。umbraco數據類型和來自代碼背後的文本值
這是我的時刻:
Document doc = new Document(Node.GetCurrent().Id);
doc.GetProperty("fieldPropertyName").Value;
這將返回ID爲預置值的字符串表示。
我想要的是該預值的文本。
在此先感謝您的幫助。
我想從API中獲取下拉列表的文本值,我正在嚴重掙扎。umbraco數據類型和來自代碼背後的文本值
這是我的時刻:
Document doc = new Document(Node.GetCurrent().Id);
doc.GetProperty("fieldPropertyName").Value;
這將返回ID爲預置值的字符串表示。
我想要的是該預值的文本。
在此先感謝您的幫助。
請原諒這是在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
我覺得你痛苦的人 – 2014-02-06 12:20:31
使用的庫函數...
var stringValue = umbraco.library.GetPreValueAsString(Convert.ToInt32(doc.GetProperty("fieldName").Value));
使用下面的代碼
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 =我們的字段名,
我已經找到一種方法通過遍歷預值要做到這一點,但感覺有點klunky。沒有人有更好的方法嗎? – jimplode 2010-11-29 16:11:38