如何在umbraco中获取prevalue的字符串值

时间:2013-04-11 10:17:34

标签: c# umbraco

我在下拉列表中添加了一些prevalues。 当我试图获取使用我的dropdownlist-data-type的属性的值时,我继续将preValue的“关键字”作为属性的值...但那不是我之后的事情..我需要并且想得到我作为我的预估值输入的actuallt prevalue-string ..

有什么想法吗?

哦,顺便说一下..我需要用C#来做。

修改

这是我到目前为止所尝试过的......它有点工作..但是它会重新列出我无法查询的列表列表..

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

4 个答案:

答案 0 :(得分:5)

我在approch下面使用下拉列表值作为文本和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));    

答案 1 :(得分: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)方法。然而,这两种方法都以各自的方式混乱。

答案 2 :(得分:1)

下拉列表我不需要它。来自Umbraco documentation

类型的:

@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>
}   

答案 3 :(得分:0)

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

string dropdownTextValue = slider.GetProperty("dropdownAlias").DataValue.ToString();