Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Modifier des listes SharePoint hôte web au moment de la création

Modifier une liste de SharePoint créée dans le site web hôte au moment de la création de liste.

Dernière modification :vendredi 7 août 2015

S’applique à :Office 365 | SharePoint 2013 | SharePoint Add-ins | SharePoint Online

Note Remarque

Le nom « Applications pour SharePoint » est remplacé par « Compléments SharePoint ». Lors de la période de transition, il se peut que la documentation et l’interface utilisateur de certains produits SharePoint et outils Visual Studio utilisent toujours le terme « applications pour SharePoint ». Pour plus d’informations, voir Nouveau nom des applications pour Office et SharePoint.

Lorsque vous créez une nouvelle liste dans le site web hôte, vous pouvez utiliser un récepteur d'événements distants ListAdded permet de modifier cette liste. Par exemple, vous pouvez activer le contrôle de version, ajouter un type de contenu à la liste ou apporter d'autres modifications implémentées par le modèle d'objet client (CSOM).

Lorsque la liste est ajoutée au site web hôte, vous devez joindre par programmation le récepteur d'événements. L'exemple Core.EventReceiversBasedModifications vous montre comment utiliser un complément hébergé par le fournisseur pour effectuer cette opération. Lorsque le complément est installé, un événement AppInstalled se produit, et vous utilisez cet événement pour attacher l'événement ListAdded .

Contribuer à ce contenu

Vous pouvez obtenir les dernières mises à jour ou contribuer à cet article sur Github. Vous pouvez également contribuer à cet article et d’autres exemples sur GitHub. Pour obtenir la liste complète des exemples, consultez le Centre des développeurs des pratiques et modèles. Nous accueillons avec plaisir vos contributions.

Pour commencer, téléchargez le complément exemple Core.EventReceiversBasedModifications à partir du projet de pratiques et modèles de développeur Office 365 sur les référentiels.

Pour implémenter les gestionnaires d'événements pour le complément, afficher les propriétés du projet SharePoint et poignée Add-in installé et la désinstallation du complément de la poignée de la valeur sur True.

L'exemple de code suivant montre comment le récepteur d'événements AppInstalled est modifié pour attacher le récepteur d'événements ListAdded .

Remarque Remarque

Le code dans cet article est fourni tel quel, sans garantie d’aucune sorte, expresse ou implicite, y compris mais sans s’y limiter, aucune garantie implicite d’adéquation à un usage particulier, à une qualité marchande ou une absence de contrefaçon.

bool rerExists = false;
cc.Load(cc.Web.EventReceivers);
cc.ExecuteQuery();

foreach (var rer in cc.Web.EventReceivers)
{
  if (rer.ReceiverName == RECEIVER_NAME)
  {
    rerExists = true;
  }
}

if (!rerExists)
{
  EventReceiverDefinitionCreationInformation receiver = new EventReceiverDefinitionCreationInformation();
  receiver.EventType = EventReceiverType.ListAdded;

  // Get WCF URL where this message was handled.
  OperationContext op = OperationContext.Current;
  Message msg = op.RequestContext.RequestMessage;
  receiver.ReceiverUrl = msg.Headers.To.ToString();
  receiver.ReceiverName = RECEIVER_NAME;
  receiver.Synchronization = EventReceiverSynchronization.Synchronous;
  cc.Web.EventReceivers.Add(receiver);
  cc.ExecuteQuery();
}

Lorsque le Gestionnaire d'événements ListAdded se déclenche, le code suivant s'exécute.

private void HandleListAdded(SPRemoteEventProperties properties)
{
  using (ClientContext cc = TokenHelper.CreateRemoteEventReceiverClientContext(properties))
  {
    if (cc != null)
    {
      try
        {
          if (properties.ListEventProperties.TemplateId == (int)ListTemplateType.DocumentLibrary)
          {
          //set versioning 
   cc.Web.GetListByTitle(properties.ListEventProperties.ListTitle).UpdateListVersioning(true, true);
          }
        }
         catch (Exception ex)
         {
           System.Diagnostics.Trace.WriteLine(ex.Message);
         }
       }
    }
  }
}

Lorsque la macro complémentaire est désinstallée, le récepteur d'événements doit également être supprimé. Pour que cela fonctionne pendant le débogage, accédez à la bibliothèque de compléments dans le test et d'utiliser l'option Supprimer dans le complément. Cela déclenche l'événement AppUninstalling avec les autorisations appropriées pour supprimer le Gestionnaire d'événements distants. Si vous venez de fermez le navigateur ou de désinstallez le complément de contenu du site, le récepteur d'événements ne se déclenche jamais ou le récepteur d'événements AppUninstalling s'exécute avec des autorisations suffisantes pour supprimer le récepteur d'événements ListAdded . C'est pourquoi les compléments sont déployés différemment lorsqu'elles se trouvent côte chargé, ce que fait Visual Studio lorsque vous appuyez sur F5.

Remarque Remarque

Nous vous conseillons de tester cet exemple dans un site de développeur clean.

Afficher: