Sitecore:按字段选择项目:TreelistEx

时间:2011-06-30 14:17:01

标签: asp.net sitecore sitecore6

我的Sitecore文件夹名为MyItems,其项目类型为MyItem。我需要使用sitecore查询或使用xpath从.net代码查询项目。 MyItem的字段为MyField,类型为TreelistEx。我需要选择MyField包含'thevalue'的所有项目(guid of other item)。我该怎么办?

非常感谢

3 个答案:

答案 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()函数在此查询中也不起作用。