首页 > 解决方案 > 在 Sitecore 8 中,我可以在页面的语言版本中获取字段值吗

问题描述

我想在页面的语言版本中获取字段值。例如,我在 en-us 中有一个名为 Search Placeholder 的项目,其字段值“Select..”在 en-us 页面上显示该值。但是,当我在 en-gb 中创建搜索占位符并输入值“Select2 ...”时,使用下面的代码它在 en-gb 页面上显示为空白。

string fieldName = "Search Placeholder Text";
Sitecore.Data.Items.Item someItem = Sitecore.Context.Database.GetItem("/sitecore/content/site/shared-content/Search Placeholder");
Sitecore.Data.Fields.Field someField = someItem.Fields[fieldName]; 
string searchPlace = someField.Value;

有没有办法检查搜索占位符是否有页面的语言版本?

标签: sitecorefieldsitecore8

解决方案


首先,您可以将选择的语言传递给GetItem方法:

Sitecore.Context.Database.GetItem(path, language)

然后,您可以使用以下命令检查项目是否具有该语言的任何版本:

someItem.Versions.Count > 0

如果 item 有多个版本并且该字段为 null,则表示在将字段添加到模板后尚未发布此 item,或者尚未发布字段 item 本身。


推荐阅读