0

Grid-1-2 と Grid-2-1 の2 つのサブレイアウトがあります。

ここに画像の説明を入力

2 つのサブレイアウトが 1 つの ASCX ファイルを共有しています (サイトコアのプラクティスとしては適切ではありませんが、この方法が必要です)。

問題は、ASCX コードビハインドで、現在選択されているグリッドが Grid-1-2 か Grid-2-1 かを確認したいことです。

DatasourceRenderingIdの両方の手法を使用してみましたが、効果がありません。

編集

サブレイアウトの「データ」セクションから「パラメータ」フィールドを取得できるかどうか疑問に思っていました。これでうまくいきます。

ここに画像の説明を入力

すべての提案を歓迎します。助けてください !!

4

2 に答える 2

0

あなたは試してみることができますか:

Sitecore.Context.Database.GetItem(((Sublayout)Parent).DataSource);

また、他のオプションは次のとおりです。

LayoutDefinition layoutDef = LayoutDefinition.Parse(Sitecore.Context.Item.Fields["__renderings"].Value);
string deviceId = Sitecore.Context.Device.ID.ToString();
DeviceDefinition curDeviceDef = layoutDef.GetDevice(deviceId);
RenderingDefinition renderingDef = curDeviceDef.GetRendering(Sitecore.Context.Database.Items["/sitecore/Layout/SubLayouts/MySublayout"].ID.ToString());
int controlIndex = curDeviceDef.GetIndex(renderingDef.UniqueId);
Control MyDotNetControl = Sitecore.Context.Page.Renderings[controlIndex].GetControl();
于 2015-12-03T07:38:50.230 に答える