none
Event Receiver - Création de sous site à l'aide d'event receiver RRS feed

  • Question

  • Bonjour,

    Je vous expose mon problème.

    Je voudrais, lors d'un ajout d'élément dans une liste, qu'un nouveau sous site soit créer sur le site qui contient cette liste.

    Je pensais passer par les workflows mais il me semble qu'ils ne permettent pas la création d'un nouveau sous site.

    Après quelques recherches j'ai entendu parler des Event Receiver.

    Est-il possible de passer par ceux ci et si oui , comment puis-je procéder ?

    Merci d'avance.
    lundi 20 juillet 2015 10:03

Réponses

  • Les event receivers sont des fonctions qui s’exécutent suite à un évènement. Pour les listes, plusieurs types d'évènements existent (Ajout d'item, modification, suppression, ...)

    Pour ton cas, tu peux utiliser un des deux évènements suivants :

    Voir: https://msdn.microsoft.com/fr-fr/library/office/ms437502%28v=office.14%29.aspx

    Après, pour créer le sous site tu dois commencer par chercher le site dans laquelle ta liste se trouve.

    Soit tu crée un site avec l'url

     site = new SPSite("tonURL");

    Soit tu utilise le CurrentContext.

    Puis tu ajoute ton sous site en utilisant la méthode site.AllWeb.Add.


    • Marqué comme réponse EGuidez lundi 20 juillet 2015 12:01
    lundi 20 juillet 2015 11:36

Toutes les réponses

  • Les event receivers sont des fonctions qui s’exécutent suite à un évènement. Pour les listes, plusieurs types d'évènements existent (Ajout d'item, modification, suppression, ...)

    Pour ton cas, tu peux utiliser un des deux évènements suivants :

    Voir: https://msdn.microsoft.com/fr-fr/library/office/ms437502%28v=office.14%29.aspx

    Après, pour créer le sous site tu dois commencer par chercher le site dans laquelle ta liste se trouve.

    Soit tu crée un site avec l'url

     site = new SPSite("tonURL");

    Soit tu utilise le CurrentContext.

    Puis tu ajoute ton sous site en utilisant la méthode site.AllWeb.Add.


    • Marqué comme réponse EGuidez lundi 20 juillet 2015 12:01
    lundi 20 juillet 2015 11:36
  • Merci beaucoup pour votre réponse.

    J'explore ces possibilités et je reviendrais vers vous si j'ai le moindre soucis.

    lundi 20 juillet 2015 12:02
  • Bonjour,

    Attention, pas de SPContext.Current dans un event receiver, on passe forcément par le properties.Web (ou Site, ...)

    lundi 20 juillet 2015 12:14
  • Bonjour,

    Attention, pas de SPContext.Current dans un event receiver, on passe forcément par le properties.Web (ou Site, ...)


    Merci pour l'info, j'ai hésité à le mettre. ça m'a posé problème qques fois (quand je déploie une solution avec un eventreceiver avec powershell) mais ça marche dans la plupart des cas ...

    Je vais éviter de le faire dorénavant.

    lundi 20 juillet 2015 12:30