2016-09-18 5 views

答えて

1

それは、レイアウト形状のようには見えませんが交互には、ボックスの外に設定している:

はあなたが必要になりますし、次のいずれかのビット、Zoneをスクロールダウンしている場合最後にAlternatesを追加するイベントハンドラOnDisplaying()があることを確認してください。

私が知らないこれをサポートする組み込みのトリックがあるかどうかはわかりません。私も知らない「レイアウト」の特別なケーシングがないと仮定すると、あなた自身があなたの要件に合った代替品を追加するIShapeTableProviderを作ることができます。

a tutorial over on Bertrands blogが表示され、これをどのように行うことができるかについての説明があります。

このコメントでは、シェイプトレーサのURL代替機能を有効にすることができます。ここで

+0

おかげで、素晴らしいガイド。 –

0

はContentTypeをベースレイアウトalternanteプロバイダのexempleです:

public class LayoutAlternateProvider : ContentHandler 
{ 
    string contentType; 
    private readonly IWorkContextAccessor _workContextAccessor; 

    protected override void BuildDisplayShape(BuildDisplayContext context) 
    { 
     if (context.DisplayType == "Detail" && !IsWidget(context.ContentItem)) 
     { 
      context.Layout.Metadata.Alternates.Add("Layout__" + context.ContentItem.ContentType); 
     } 
    } 

    private static bool IsWidget(ContentItem item) 
    { 
     return item.TypeDefinition.Settings.Any(setting => setting.Key == "Stereotype" && setting.Value == "Widget"); 
    } 
}