WebHU - Programozási kérdések és válaszok

Alelrendezések programozott eltávolítása a Sitecore-ban

Tudja valaki, hogyan lehet eltávolítani a rendereléseket egy Sitecore elemről?

El akarom távolítani az összes alelrendezést, hogy lecserélhessem őket egy új készletre. Megpróbáltam ezt de úgy tűnik, nem működik. Semmi sem változik az elemen.

Úgy tűnik, hogy a következőképpen tudom megjeleníteni:

RenderingReference[] renderings = item.Visualization.GetRenderings(Sitecore.Context.Device, true);

De úgy tűnik, nincs mód ezek beállítására.

A rendereléseket így is megkapom (a fenti linkről):

LayoutDefinition layoutDefinition = LayoutDefinition.Parse(LayoutField.GetFieldValue(item.Fields[Sitecore.FieldIDs.LayoutField]));
DeviceDefinition device = layoutDefinition.GetDevice(Sitecore.Context.Device.ID.ToString());

if (device.Layout != null) device.Layout = null;
if (device.Renderings != null) device.Renderings = new ArrayList();

De ez megint nem működik. Az eszköz törlése a layoutDefinition és a módosított beállításból a következő kivételhez vezetett: No connection could be made because the target machine actively refused it. És most egyáltalán nem tudom megnézni a tételt!

Úgy érzem, rossz fát ugatok, van ötletetek?

A Sitecore 6.4 használata

FRISSÍTÉS Re: techphoria414

Kód, amit kipróbáltam:

layoutDefinition.Devices.Clear();
layoutDefinition.Devices.Add(device);
07.03.2012

  • Meg tudja adni a kódot, amellyel a változtatásokat visszamenti a mezőbe, és a kivétel teljes veremnyomát? 07.03.2012

Válaszok:


1

Szerintem a kivételednek nincs köze ehhez. A módosítások tényleges mentéséhez szerkesztenie kell az elemet. Ügyeljen arra, hogy mindig elérje és frissítse az értéket a következőn keresztül: LayoutField.Value.

LayoutField layoutField = new LayoutField(item.Fields[Sitecore.FieldIDs.LayoutField]);
LayoutDefinition layout = LayoutDefinition.Parse(layoutField.Value);
//make your changes to the LayoutDefinition here
item.Editing.BeginEdit();
layoutField.Value = layout.ToXml();
item.Editing.EndEdit();
07.03.2012
  • Nem akarja eltávolítani az alelrendezéseket, nem pedig elrendezést hozzáadni? 07.03.2012
  • Továbbra is érvényes, tetszőleges módosításokat végezhet a LayoutDefinitionben, amely információkat tartalmaz az egyes eszközök elrendezéséről és megjelenítéséről. 07.03.2012
  • Ahhh, nem tudtam, hogy a LayoutDefinition tartalmazza a megjelenítés részleteit. Ezt nagyon jó tudni! 07.03.2012
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..