2010-10-11 22 views
3

Vous avez un problème ennuyeux.Sitecore - Création d'un nouvel élément sur l'événement OnSavingItem redirige l'environnement vers l'élément nouvellement créé

Lorsqu'un utilisateur édite un champ sur un élément, nous utilisons un gestionnaire d'événement OnSavingItem pour créer de nouveaux éléments ailleurs en arrière-plan.

Problème est l'élément que les utilisateurs ont modifié le champ de redirigé vers l'élément invisible créé en arrière-plan.

Nous voulons qu'il reste où il est ... Des idées?

grâce

Répondre

3

Si vous souhaitez désactiver le transfert à l'élément que vous venez de créer, vous pouvez également envisager d'appliquer le code suivant:

// Before we copy the item we put notifications on to make sure we won't be transfered to the newly created item       
Sitecore.Client.Site.Notifications.Disabled = true; 

// Your action comes here 

Sitecore.Client.Site.Notifications.Disabled = false; 
+0

C'est le code exact que j'ai écrit :) – danswain

0

Utilisez-vous le

<event name="item:saved"> 

Handler? Si c'est le cas, n'oubliez pas que cet événement est également déclenché sur tous les nouveaux éléments que vous créez, ce qui peut déclencher une boucle d'événements récursive.

+0

Oui, nous le sommes, mais nous n'exécutons notre code que si l'élément est d'un modèle spécifique. – danswain

0

Cette réponse est venue du forum Sitecore ... va à John crédit Ouest

Je pense que vous pouvez utiliser l'élément: événement enregistrement ou le pipeline saveUI. Utilisez l'événement si vous devez gérer les modifications apportées via les API ou utilisez le pipeline si vous ne devez gérer que les modifications effectuées via l'interface utilisateur.

Vous pouvez également ajouter la logique au champ lui-même.

John West Sitecore Blog

0

article: sauvé est beaucoup plus lourd qu'un processeur dans le pipeline saveUI. Par exemple, item: saved est déclenché lors de la publication ce qui n'est pas ce que vous voulez vraiment. Je recommande toujours de gérer de telles personnalisations soit au niveau du pipeline ou du niveau d'action du workflow.