如何从用作预定义列表的 sitecore 下拉列表中获取字段值
How to obtain field values from a sitecore droplist used as a predefined list
在我的模板中,我有一个 Droplist 字段类型,它映射到一个 Sitecore 文件夹,其中包含 Droplist 的值,在本例中为 Colours。这是为了防止编辑者打错字或发明不在预定义列表中的颜色。
因此该颜色基于我称为 TAGS 的模板,该模板具有单个字段类型 'colour',在这里我使用该模板创建了一系列项目以创建样本列表的颜色。
当我访问主模板时,我会在该下拉列表中看到颜色值,因此它可以正常工作,因为我可以访问该字段值:
tileValues.Attributes["class"] += " tile-" + Item.Fields["Tile Colour"].Value.ToLower();
但是我意识到它没有使用模板的字段值,而是使用了我为项目命名的名称。所以它实现了我想要的结果只是一个快乐的错误。
但是我如何在结束代码中获取该项目的实际字段值。我有一些场景,其中会有多语言编辑器,所以我们可以将标签命名为 rouge、blanc 等,这是编辑器在 Droplist 中选择时会看到的,但我们需要字段的颜色值仍然是红色或白色等
我试过了:
Item.Fields["Tile Colour"].Item.Fields["Colour"].Value
但是尽管 API 提示暗示其有效,但还是失败了。
我希望这是有道理的,有人可以帮助我获取实际字段值而不是项目名称。
正如 Sitecore Climber 所写,不要使用 Droplist
字段类型 - 它仅存储项目名称,您无法在后面的代码中获取项目本身。
使用 Droplink
字段类型 - 它存储项目的 ID。
那么您可以获得物品:
Item colourItem = Sitecore.Context.Database.GetItem(Item["Tile Colour"]);
if (colourItem != null)
{
string colour = colourItem["Colour"];
|
在我的模板中,我有一个 Droplist 字段类型,它映射到一个 Sitecore 文件夹,其中包含 Droplist 的值,在本例中为 Colours。这是为了防止编辑者打错字或发明不在预定义列表中的颜色。
因此该颜色基于我称为 TAGS 的模板,该模板具有单个字段类型 'colour',在这里我使用该模板创建了一系列项目以创建样本列表的颜色。
当我访问主模板时,我会在该下拉列表中看到颜色值,因此它可以正常工作,因为我可以访问该字段值:
tileValues.Attributes["class"] += " tile-" + Item.Fields["Tile Colour"].Value.ToLower();
但是我意识到它没有使用模板的字段值,而是使用了我为项目命名的名称。所以它实现了我想要的结果只是一个快乐的错误。
但是我如何在结束代码中获取该项目的实际字段值。我有一些场景,其中会有多语言编辑器,所以我们可以将标签命名为 rouge、blanc 等,这是编辑器在 Droplist 中选择时会看到的,但我们需要字段的颜色值仍然是红色或白色等
我试过了:
Item.Fields["Tile Colour"].Item.Fields["Colour"].Value
但是尽管 API 提示暗示其有效,但还是失败了。
我希望这是有道理的,有人可以帮助我获取实际字段值而不是项目名称。
正如 Sitecore Climber 所写,不要使用 Droplist
字段类型 - 它仅存储项目名称,您无法在后面的代码中获取项目本身。
使用 Droplink
字段类型 - 它存储项目的 ID。
那么您可以获得物品:
Item colourItem = Sitecore.Context.Database.GetItem(Item["Tile Colour"]);
if (colourItem != null)
{
string colour = colourItem["Colour"];
|