2016-03-01 5 views
6

私はSitecore 8.1のインストールを進めています。私はコンテンツエディタがアイテムのツリーから1つのアイテム(データテンプレートA)を選択できるようにdroptreeフィールドを使用しようとしています。有効な選択肢である各アイテムには、異なるデータテンプレート(データテンプレートB)の子アイテムが1つ以上あることが保証されています。文書によると、これは簡単にできるようになります。Sitecore Droptreeはアイテムを除外しません

Datasource=/sitecore/Media Library/Images/Folder&IncludeTemplatesForDisplay=Data Template A 

またはクエリ:ちょうどパラメータ化されたデータソースのいずれかにソースを設定するいくつかの理由

query:/sitecore/Media Library/Images/Folder/*[@@templatename='Data Template A'] 

、しかし、フィールドがいるようですパス以外は無視してください。ツリーの正しい部分が表示されますが、すべてのアイテム(データテンプレートBのアイテムを含む)が表示され、それらを選択することができます。私は[Exclude|Include]TemplatesFor[Selection|Display]の様々な順列を試しましたが、いずれも効果が実証されていません。私はまた、[@@templatename!='Data Template B']または両方のアプローチを使用してBからクエリを除外しようとしましたtemplateid

私はこれについての情報をたくさん見つけることができませんでした。一般的な解決策は、1つの選択肢に制限するために、正規表現検証付きのTreeListを使用しているようです。このアプローチは適切ですが、実際に私が好むものではありません.TreeList UIは単一の選択に対して少し奇妙です。ユーザーが複数のアイテムを選択することを許可しないでください。行う。

例外を守るために使用できる他のフィールドはいくつかありますが、ツリービューは表示されません。ここでは多くのアイテムが潜在的に存在する可能性があるため、役に立つ文脈で

Droptreeを模倣した新しいフィールドタイプを書いているかもしれませんが、実際には除外を尊重しています - これは私が取るルートかもしれないほど頑固ですが、まず確認したいちょうど何かが欠けている。これは疑問です。DroptreeをExcludeTemplatesForSelection/Displayに設定する方法や、自分で作成する前にクエリでフィルタリングする方法を知っている人は誰ですか?

答えて

6

Sitecore DropTreeフィールドは、IncludeTemplatesForSelectionまたはIncludeTemplatesForDisplayパラメータをサポートしていません。

これらは、Treelist,TreelistExおよびMulitlistフィールドでのみ機能します。

リチャードキャブラルが作成したフィールドタイプはFilteredTreeです。

gitからはFiltered Tree by Richard Cabral at githubです。

+0

この実装に取り​​組んでいますが、後に続くユーザーのための簡単なメモもあります。 1. https://github.com/sitecorerick/spark-sitecore-client/blob/master/Fields /FilterableDataTreeView.cs 2. using文に 'Using TreeNode = Sitecore.Web.UI.HtmlControls.TreeNode'を追加しました。 –

+0

これが動作することを確認できるようになりました。唯一の些細な問題は、Sitecore Rocksを介してツリービューにアクセスすることができないということですが、それはコンテンツエディタではなく、私にとって煩わしいことです。 –

関連する問題