在我的模板中,我有一个字段类型的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提示暗示其有效,但这失败了。
我希望这是有道理的,有人可以帮助我获取实际的字段值,而不是项目名称。
答案 0 :(得分:3)
正如Sitecore Climber所写,不要使用Droplist
字段类型 - 它只存储项目名称,而您无法在后面的代码中获取项目。
使用Droplink
字段类型 - 它存储项目的ID。
然后你可以得到这个项目:
Item colourItem = Sitecore.Context.Database.GetItem(Item["Tile Colour"]);
if (colourItem != null)
{
string colour = colourItem["Colour"];
|