Sitecore:按字段选择项目:TreelistEx

发布于 2024-11-18 07:05:09 字数 189 浏览 1 评论 0 原文

我有名为 MyItems 的 Sitecore 文件夹,其中包含 MyItem 类型的项目。我需要使用 sitecore 查询或 xpath 从 .net 代码查询项目。 MyItem 具有 TreelistEx 类型的字段 MyField。我需要选择 MyField 包含“thevalue”(其他项目的 GUID)的所有项目。我该怎么做?

多谢

I have Sitecore folder named MyItems with items of type MyItem. I need to query the items from .net code either with sitecore query or with xpath. MyItem has field MyField of type TreelistEx. I need to select all items where MyField contains 'thevalue' (guid of other item). How can i do it?

Thanks a lot

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夜夜流光相皎洁 2024-11-25 07:05:09
string query = string.Format("/sitecore/content/MyItems/*[contains(@MyField,'{0}')]", thevalue);
Item[] myItems = Sitecore.Context.Database.SelectItems(query);

我刚刚从我的网站中提取了此代码并调整了您的查询的名称。如果您有很多 MyItems,那么效率相当低,因此我不会在性能至关重要的页面上使用它。相同的查询应该适用于任何列表类型字段。

string query = string.Format("/sitecore/content/MyItems/*[contains(@MyField,'{0}')]", thevalue);
Item[] myItems = Sitecore.Context.Database.SelectItems(query);

I just pulled this code from my site and adjusted the names for your query. It is fairly inefficient if you have a lot of MyItems, so I wouldn't use this on a page where performance is key. The same query should work for any list-type field.

韵柒 2024-11-25 07:05:09

虽然不能在快速查询中使用函数,但可以使用带有通配符的类似 sql 的语法。看:

string query = string.Format("fast:/sitecore/content/MyItems/*[@MyField='%{0}%']", thevalue);

真实的故事。单词。

资料来源:“使用 Sitecore 快速查询”,我相信这是“帐户墙(tm)”背后的原因

不支持函数。然而 contains() 函数可以是
替换为包含 SQL 通配符的字符串相等运算符。
例如: //[contains(@Title, 'Sitecore')] 相当于
fast://
[@Title = '%Sitecore%']"

Although you can't use functions in fast query, you can use sql like syntax with wildcards. Behold:

string query = string.Format("fast:/sitecore/content/MyItems/*[@MyField='%{0}%']", thevalue);

True story. Word.

Source: Page 9 of "Using Sitecore Fast Query" which I believe is behind an "account wall(tm)"

Functions are not supported. However the contains() function can be
replaced by a string equality operator that contains SQL wildcards.
For example: //[contains(@Title, 'Sitecore')] is equivalent to
fast://
[@Title = '%Sitecore%']"

ぃ弥猫深巷。 2024-11-25 07:05:09

您可能还想使用快速查询并

string query = string.Format("fast:/sitecore/content/MyItems/*[contains(@MyField,'{0}')]", thevalue);

更新:sitecore 快速查询不支持函数,因此 contains() 函数在此查询中不起作用。

You may want to use fast query as well

string query = string.Format("fast:/sitecore/content/MyItems/*[contains(@MyField,'{0}')]", thevalue);

update: sitecore fast query doesn't support functions, so the contains() function will nor work in this query.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文