Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
333 views
in Technique[技术] by (71.8m points)

c# - Query notation for the sitecore 'source' field in template builder

I am trying to set the the source field of a template using the query notation (or xpath - whichever works), but none of them seems to be working.

My content tree is a multisite content tree:

France
--Page 1
----Page1A
-------Page1AA
--Page 2
--Page 3
--METADATA
----Regions

US
--Page 1
----Page1A
-------Page1AA
--Page 2
--Page 3
--METADATA
----Regions

Each site has its own METADATA folder, and I want it so that when adding a page inside each of the main country nodes, I want the values to reflect whatever is in the METADATA of that site. I have two different fields for now - a droplink and a treelistex field. So I thought I can just get the parent item that is a country site, and get the metadata folder for that. When I put the following query in both the fields, I get different results:

 query:./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*
  • For the droplink field, I get only the first Region (one item)
  • For the treelistex field, I get the entire content tree

I then tried to modify the query a little bit and took the 'query' notation out

 ./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*

If I go to the developer center/xpath builder, and set the context node to any item underneath the main country site, it returns me exactly what I need, but when I put this in the source, I get the entire content tree in both the cases.

Help!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Fields that support Sitecore Query

Where you can use the syntax query: or fast: (for FastQuery):

  • Droplist
  • Grouped Droplist
  • DropLink
  • Grouped Droplink
  • Checklist
  • Multilist
  • Droptree

Fields that support Parameterized Datasource

Where you can use enhanced syntax with Parameterized datasource query:

  • Droptree ?
  • Treelist
  • TreelistEx

? Droptree only supports the Datasource and DatabaseName parameters.

The enhanced query string syntax includes the following parameters:

  • Datasource
  • DatabaseName
  • AllowMultipleSelection
  • IncludeItemsForDisplay
  • ExcludeItemsForDisplay
  • IncludeTemplatesForSelection
  • ExcludeTemplatesForSelection
  • IncludeTemplatesForDisplay
  • ExcludeTemplatesForDisplay

These are used like this: Datasource=/sitecore/content/home/Products/&IncludeTemplatesForDisplay=Product Category&ExcludeTemplatesForSelection=Product Description&IncludeTemplatesForSelection=Product Category

Mark Ursino has a great post on how to use this kind of syntax here.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...