如何从用作预定义列表的sitecore下拉列表中获取字段值

时间:2016-02-10 09:44:00

标签: sitecore sitecore7.2

在我的模板中,我有一个字段类型的Droplist,它映射到一个Sitecore文件夹,其中包含Droplist的值,在本例中为Colors。这样编辑就无法输入拼写错误或发明一种不在预定义列表中的颜色。

因此,颜色基于模板,我称之为TAGS,其单一字段类型为“颜色”,在这里我使用该模板创建一系列项目来为样本列表创建颜色。

当我访问主模板时,我会正确地看到该Droplist中的颜色值,因此它可以正常工作,因为我可以访问那些字段值:

tileValues.Attributes["class"] += " tile-" + Item.Fields["Tile Colour"].Value.ToLower();

但是我已经意识到它没有使用模板的字段值,而是使用了我称之为项目的名称。因此,它实现了我想要的结果,这只是一个快乐的错误。

但是,如何在结束代码中获取该项目的实际字段值。我有可能会有多语言编辑器的场景,所以我们可以将标签命名为rouge,blanc等,这是编辑器在Droplist中选择时会看到的但是我们需要字段的颜色值仍然是红色或白色等< / p>

我试过了:

Item.Fields["Tile Colour"].Item.Fields["Colour"].Value

但是尽管API提示暗示其有效,但这失败了。

我希望这是有道理的,有人可以帮助我获取实际的字段值,而不是项目名称。

1 个答案:

答案 0 :(得分:3)

正如Sitecore Climber所写,不要使用Droplist字段类型 - 它只存储项目名称,而您无法在后面的代码中获取项目。

使用Droplink字段类型 - 它存储项目的ID。

然后你可以得到这个项目:

Item colourItem = Sitecore.Context.Database.GetItem(Item["Tile Colour"]);
if (colourItem != null)
{
    string colour = colourItem["Colour"];
|