[英]Categorised multi-select dropdown list in Sitecore
作為Umbraco的開發人員,我對Sitecore還是陌生的,到目前為止,我一直很惱火,因為一些可以在Umbraco中手動添加的功能似乎非常復雜,並且在Sitecore中的文檔很少。
本質上,我有多個語言站點:
在這些站點的下面都有一組文章:
英語
- 第1條
- 第二條
法國
- 第三條
- 第4條
我要實現的是后端的一種屬性,該屬性按國家/地區分類,並允許用戶從不同語言的站點中選擇多篇文章。
因此,例如,我可以選擇第1條和第3條。理想情況下,選擇控件應看起來像這樣,將國家設為粗體,不可選擇的類別,並且下面的選項應遵循標准的多選行為。
有誰知道在Sitecore中如何實現這一目標? 或者,沒有人知道有任何Sitecore市場插件可以使我實現這一目標,因為到目前為止,網絡上缺少與此相關的文檔和文獻。
任何幫助或指針將不勝感激。
您可以使用TreeList實現類似的功能。 它看起來像一棵樹,因此並非完全如您所願,而是可以完成所需的功能。 可以使用“源”值對TreeList進行調整,以顯示Sitecore樹的一部分,使某些項目不可選擇,依此類推。
在這里可以找到很好的資源。
對於您的情況,對源查詢使用Datascource
和ExcludeTemplatesForSelection/IncludeTemplatesForSelection
選項。
我可以通過編碼數據源為您提供大部分幫助。 如果創建一個從IDataSource繼承的類,則可以使其適合您的任何需要。 我無法理解的是,您拒絕用戶選擇粗體國家。
這是John West撰寫的一篇文章,下面的代碼是我當前正在使用的代碼。 我在渲染屬性中使用此代碼,因此您將看到許多對渲染的引用。 但是,您要尋找的只是返回一個Items數組。
然后,在數據源中,指定單詞“ code:”,后跟類名稱“,”程序集名稱。
代碼:Sitecore.Sharedsource.Data.FieldSources.CustomFieldDataSource,Sitecore.Sharedsource
public class GetStyles : IDataSource
{
public Item[] ListQuery(Item item)
{
bool flag = !string.IsNullOrWhiteSpace(Context.RawUrl) && Context.RawUrl.Contains("hdl");
if (flag)
{
string renderingId = FieldEditorOptions.Parse(new UrlString(Context.RawUrl)).Parameters["rendering"];
if (!string.IsNullOrEmpty(renderingId))
{
ItemUri renderingItemUri = new ItemUri(renderingId);
var containers = DependencyResolver.Current.GetService<IPresentationRepository>().GetStylesItem(renderingItemUri.ItemID, item);
if (containers == null)
return new Item[0];
return containers.Children.ToArray<Item>();
}
}
var result = new Item[0];
return result;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.