2017-01-31 12 views
1

これは簡単なようです。多分それは、私はちょうどそれを思っています。 DropLink経由でカテゴリフィールドを設定したアイテムがたくさんあります。私はそれらのオプションの1つと一致するすべてのアイテムをつかみたい。例:カテゴリ=パンフレットのすべてのアイテムのリストを取得します。 DroplinkオプションのIDをアイテム自体のCategoryオプションと照合するようには見えません。SitecoreのDropLinkオプションに一致するすべてのアイテムを取得します。

EDIT:リクエストによって現在のコードが含まれています。

public List<PoolDownload> Manuals 
     { 
      get 
      { 
       LookupField cat = (LookupField)this.Item.Fields["Category"]; 
       return this.Downloads.Where(i => (i.Item.TemplateID == PoolDownload.TemplateId) && 
             (i.Item.GlassCast<Pdp.Pool.Website.Business.Entities.PoolDownload>().Category.ToString() == cat.TargetID.ToString())) 
             .ToList(); 
      } 
     } 
+1

これまでに試したことを示すコードを投稿してください。 – haliphax

+0

Categoryプロパティの種類は何ですか? – DougCouto

+0

@Barbosa CategoryフィールドはDropLinkフィールドです。 – timT

答えて

1

私はこの問題は、あなたがSitecore.Data.ID.ToString()Guid.ToString()を比較していると考えています。同様TargetIDGuid

var guidToString = Sitecore.Context.Item.ID.Guid.ToString(); 
// "2a6a1d9a-be1d-411b-821a-7e63775280b3" 

var idToString = Sitecore.Context.Item.ID.ToString(); 
// "{2A6A1D9A-BE1D-411B-821A-7E63775280B3}" 

キャストとあなたは良いことがあります。これらの二つの文は、異なる値を返します。結果をループに続い

public IEnumerable<IGrouping<Guid, PoolDownload>> Manuals 
{ 
    get 
    { 
     LookupField cat = (LookupField)this.Item.Fields["Category"]; 

     return this.Downloads.Where(i => 
      i.Item.TemplateID == PoolDownload.TemplateId 
      && i.Item.GlassCast<Pdp.Pool.Website.Business.Entities.PoolDownload>().Category.ToString() == cat.TargetID.Guid.ToString()) 
      .GroupBy(i => i.Category); 
    } 
} 

そして、:

、カテゴリ別にグループ化され、「ダウンロード項目の」表示について以下のコメントにあなたの質問に答えるために、あなたはGROUPBYメソッドを使用することができ、このようなhttps://msdn.microsoft.com/en-us/library/bb534304(v=vs.110).aspx新しいマニュアルのプロパティでは、次のようなことができます。

foreach(var categoryGroup in Manuals) 
{ 
    var categoryGuid = categoryGroup.Key; 

    foreach(var download in categoryGroup) 
    { 
     var downloadInCurrentGroup = download.Item; 
    } 
} 
+0

ありがとう、@Barbosa!それはIDの一致に役立ちます。私がテストしているオプションのIDを取得するにはどのような考えですか? – timT

+0

問題ありません。 テストしているオプションはどこに設定していますか?あなたのコードにはハードコードされていますか?それはページ項目のフィールドですか?それはデータソース項目のフィールドですか?コンテンツ作成者はどのカテゴリからカテゴリを選択しますか? – DougCouto

+0

コンテンツ作成者がカテゴリを設定するために使用するドロップリンクフィールドを持つ「ダウンロードアイテム」があります。これらは私がテストしたいオプションです(Manual、Brochure、etc ...)。ダウンロード商品は、商品テンプレートのダウンロード欄を介して商品アイテムに関連付けられます。製品には複数のダウンロードアイテムが関連付けられています。私が最終的にやろうとしているのは、製品のダウンロードアイテムをカテゴリごとにグループ化して表示することです。 – timT

関連する問題