私はこれが非常に直感的ではないので、なぜあなたがこれを見つけるのか理解しています。私はそれを行う方法についていくつかのサンプルコードを作成し、おそらく後でそれについてのブログ記事を書くでしょう。それまでは、ここでのサンプルコードです:
using(new SecurityDisabler())
{
Database masterDatabase = Database.GetDatabase("master");
ID sampleLayoutId = new ID("{14030E9F-CE92-49C6-AD87-7D49B50E42EA}");
ID defaultDeviceId = new ID("{FE5D7FDF-89C0-4D99-9AA3-B5FBD009C9F3}");
ID sampleItemId = new ID("{2E4C98CF-DD72-4B55-9DF6-2F6691A6690B}");
ID sampleRenderingId = new ID("{493B3A83-0FA7-4484-8FC9-4680991CF743}");
Item sampleItem = masterDatabase.GetItem(sampleItemId);
Item layoutItem = masterDatabase.GetItem(sampleLayoutId);
LayoutDefinition layoutDefinition = new LayoutDefinition();
layoutDefinition.LoadXml(sampleItem["__Renderings"]);
DeviceDefinition deviceDefinition = layoutDefinition.GetDevice(defaultDeviceId.ToString());
deviceDefinition.ID = defaultDeviceId.ToString();
deviceDefinition.Layout = sampleLayoutId.ToString();
RenderingDefinition renderingDefinition = new RenderingDefinition();
renderingDefinition.ItemID = sampleRenderingId.ToString();
deviceDefinition.AddRendering(renderingDefinition);
sampleItem.Editing.BeginEdit();
sampleItem["__Renderings"] = layoutDefinition.ToXml();
sampleItem.Editing.EndEdit();
}
私はブログの記事を書く時間を得るとき、それ以外の場合は、より説明的になり、あなたがそれから意味をなすことができると思います。
あなたのブログ記事を待っています、私は好奇心が強いです:) – Younes
こんにちはジェンス、完全に動作するコードをありがとう。 //layoutDefinition.LoadXml(sampleItem["__Renderings "])行をコメントアウトしました。プレースホルダとレンダリングが関連付けられていないためです。あなたの助けをもう一度ありがとう。 –
+1これは非常に役に立ちます – marto