4

我在下拉列表中添加了一些预值。当我试图获取使用我的下拉列表数据类型的属性的值时,我不断将 preValue 的“键”作为属性的值。但这不是我想要的。我需要并想要得到我作为预值输入的实际预值字符串..

有任何想法吗?

哦,顺便说一句..我需要使用 C# 来完成。

编辑

这是我到目前为止所尝试的......并且它有点工作......但它检索了一个我无法做任何查询的列表列表......

PreValues.GetPreValues(new Document(statistic.ParentId,true).getProperty("identifier").PropertyType.DataTypeDefinition.DataType.DataTypeDefinitionId).Values
4

4 回答 4

5

我正在使用下面的方法来获取下拉列表值作为文本和 id

// Node ID of content node in which dropdown has been used 
int NodeIdOfContent = 1111; 
Document docMfsFeedSettings = new Document(NodeIdOfContent); 

int preValueID = docMfsFeedSettings.getProperty("dropDownAliasName").Value)

// Retrieve Text value 
string textValue = umbraco.library.GetPreValueAsString(
                  Convert.ToInt32(docMfsFeedSettings.getProperty("dropDownAliasName").Value));    
于 2013-08-09T06:27:36.470 回答
2

这有点乱,但是使用 PreValues 对象可以得到一个仅包含值的 IEnumerable:

...

int id = statistic.ParentId;
var node = new Document(id, true);
var property = node.getProperty("dropdown");
var dataTypeDefinitionId = property.PropertyType.DataTypeDefinition.DataType.DataTypeDefinitionId;

// Cast the SortedList to an IEnumerable of DictionaryEntry and then
// select the PreValue objects from it:
var preValues = PreValues.GetPreValues(dataTypeDefinitionId)
    .Cast<DictionaryEntry>()
    .Select(d => d.Value as PreValue);

// Select just the values from the PreValue objects:
var values = preValues.Select(p => p.Value);

另一种方法是使用该umbraco.library.GetPrevalues(int id)方法。然而,这两种方法都以自己的方式混乱。

于 2013-04-11T17:42:01.840 回答
1

我不需要它作为下拉列表。来自Umbraco 文档

键入:

@if (Model.Content.HasValue("superHero"))
{
    <p>@Model.Content.GetPropertyValue("superHero")</p>
}

动态的:

@if (CurrentPage.HasValue("superHero"))
{
    <p>@CurrentPage.superHero</p>
} 

但是,对于 radiolist,prevalue 可以按如下方式访问:

键入:

@if (Model.Content.HasValue("miniFigure"))
{
    var preValue = Umbraco.GetPreValueAsString(Model.Content.GetPropertyValue<int>("miniFigure"));
    <p>@preValue</p>
}

动态的:

@if (CurrentPage.HasValue("miniFigure"))
{
    var preValue = Umbraco.GetPreValueAsString(CurrentPage.miniFigure);
    <p>@preValue</p>
}   
于 2017-03-02T14:46:14.647 回答
0

使用 Umbraco 7.53 版,我只是这样做了,以获取下拉值:

string dropdownTextValue = slider.GetProperty("dropdownAlias").DataValue.ToString();
于 2016-09-30T11:56:51.977 回答