2009-03-16 3 views
4

Je suis au courant des récepteurs d'événements sur une liste pour les éléments ajoutés, etc. Cependant, je n'ai pas trouvé un moyen de déclencher le code lors de la création d'une liste. Ce que j'essaie de faire est d'associer un workflow à une liste lors de la création de la liste (par l'utilisateur via l'interface utilisateur).Comment déclencher le code lors de la création d'une liste SharePoint?

Quelqu'un a des idées?

merci.

Répondre

6

Il y a quelques itinéraires que vous pouvez prendre ...

Vous pouvez écrire votre propre définition de liste dans laquelle vous avez défini l'association de flux de travail - De cette façon, toutes les listes créées en fonction de votre définition de liste, contiendra votre flux de travail par défaut.

Ou ... en fonction de votre flux de travail ... écrivez un EventReceiver votre pièce jointe à toutes les listes du type auquel vous souhaitez attacher votre flux de travail (peut facilement être réalisé) et que votre récepteur d'événements associe le flux de travail lorsque le premier élément est ajouté.

ou vous pouvez associer le flux de travail aux contenttype utilisés dans la liste (votre contenttype vous attachez à votre propre définition de liste ou un défaut SharePoint contenttype)

Je ne sais pas le reste de votre solution, donc il est difficile pour moi de vous proposer la meilleure solution. Ce que je fais (presque) toujours, c'est d'écrire ma propre définition de liste - De cette manière, je peux éviter des problèmes comme celui-ci, maintenant ou dans le futur.

+0

Merci Brian. Je vais probablement associer le flux de travail dans le modèle de liste. Bien que je pense qu'il aurait mieux valu que le flux de travail soit attaché à n'importe quelle bibliothèque, et créer simplement les éléments requis (colonnes, vues, etc) à l'initialisation. – Donaldinio

1

Je déploie généralement une page de vue supplémentaire qui est définie sur la vue par défaut. Lorsque l'utilisateur crée la liste, il sera envoyé à la page d'affichage qui contient le code d'installation derrière. La page de vue appelle ensuite une méthode créée, qui modifie la vue par défaut, supprime la vue de configuration et modifie tout nœud de navigation pointant vers la vue de configuration.

+0

C'est une approche plutôt intéressante! Merci! – Donaldinio

1

Il n'y a probablement pas de réponse parfaite à cette question, car il n'y a pas de récepteur d'événement ajouté à la liste (si ma mémoire est bonne).

Je ne sais pas si cela est le cas, mais si vous avez vraiment besoin d'enregistrer un ItemAdded (ou modifier, supprimer, etc.) événement pour toute nouvelle liste, je crois que vous pouvez enregistrer les ces événements à la site (SPWeb) niveau et ils se lanceront sur toutes les nouvelles listes créées.

+1

Il existe un récepteur d'événement ListAdded: public override void ListAdded (propriétés SPListEventProperties) ' –

3

Avec SharePoint 2010, il est désormais possible de se connecter à l'événement de création de liste en remplaçant l'événement ListAdded dans la classe SPListEventReceiver.

Questions connexes