我的Sitecore文件夹名为MyItems,其项目类型为MyItem。我需要使用sitecore查询或使用xpath从.net代码查询项目。 MyItem的字段为MyField,类型为TreelistEx。我需要选择MyField包含'thevalue'的所有项目(guid of other item)。我该怎么办?
非常感谢
答案 0 :(得分:5)
string query = string.Format("/sitecore/content/MyItems/*[contains(@MyField,'{0}')]", thevalue);
Item[] myItems = Sitecore.Context.Database.SelectItems(query);
我刚刚从我的网站提取此代码并调整了查询的名称。如果你有很多MyItems,这是相当低效的,所以我不会在性能关键的页面上使用它。相同的查询应适用于任何列表类型字段。
答案 1 :(得分:1)
虽然您无法在快速查询中使用函数,但您可以使用带有通配符的sql语法。看哪:
string query = string.Format("fast:/sitecore/content/MyItems/*[@MyField='%{0}%']", thevalue);
真实的故事。字。
资料来源:“Using Sitecore Fast Query”的第9页,我认为它背后是“帐号墙(tm)”
不支持功能。但是contains()函数可以 由包含SQL通配符的字符串相等运算符替换。 例如:// [contains(@标题,'Sitecore')]等同于 fast:// [@Title ='%Sitecore%']“
答案 2 :(得分:0)
您可能也想使用快速查询
string query = string.Format("fast:/sitecore/content/MyItems/*[contains(@MyField,'{0}')]", thevalue);
更新:sitecore
快速查询不支持函数,因此contains()
函数在此查询中也不起作用。