簡體   English   中英

Sitecore中的分類多選下拉列表

[英]Categorised multi-select dropdown list in Sitecore

作為Umbraco的開發人員,我對Sitecore還是陌生的,到目前為止,我一直很惱火,因為一些可以在Umbraco中手動添加的功能似乎非常復雜,並且在Sitecore中的文檔很少。

本質上,我有多個語言站點:

  • 英語
  • 法國
  • 德語

在這些站點的下面都有一組文章:

  • 英語

    • 第1條
    • 第二條
  • 法國

    • 第三條
    • 第4條

我要實現的是后端的一種屬性,該屬性按國家/地區分類,並允許用戶從不同語言的站點中選擇多篇文章。

因此,例如,我可以選擇第1條和第3條。理想情況下,選擇控件應看起來像這樣,將國家設為粗體,不可選擇的類別,並且下面的選項應遵循標准的多選行為。

預期結果的圖像

有誰知道在Sitecore中如何實現這一目標? 或者,沒有人知道有任何Sitecore市場插件可以使我實現這一目標,因為到目前為止,網絡上缺少與此相關的文檔和文獻。

任何幫助或指針將不勝感激。

您可以使用TreeList實現類似的功能。 它看起來像一棵樹,因此並非完全如您所願,而是可以完成所需的功能。 可以使用“源”值對TreeList進行調整,以顯示Sitecore樹的一部分,使某些項目不可選擇,依此類推。

這里可以找到很好的資源。

對於您的情況,對源查詢使用DatascourceExcludeTemplatesForSelection/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM