Question

Comment puis-je mettre une partie web il sera automatiquement ajouté à une zone de partie Web lorsqu'une mise en page spécifique est sélectionné?

Les solutions que j'ai essayé jusqu'à présent est:

  1. Utilisation <ZoneTemplate> sous <WebPartZone> et de mettre mon webpart là-dedans
  2. Ajout .webpart code directement dans <AllUsersWebPart> où je définis la mise en page, en elements.xml
  3. Placez la partie Web sur la page layouts structure du programme lors de la création du site (script de déploiement)
  4. Ajouter un crochet crochets dans et ajoute la partie Web

Problèmes avec les solutions:

  1. La partie web semble devenir statique, et ne peut être retiré après sa création.
  2. devrait mettre .webpart code à la fois un .webpart fichier ainsi que dans elements.xml (je veux qu'il soit autonome, ainsi que défini par défaut). Et faire un désordre dans mon elements.xml.
  3. partie Web ne sera déployée première fois, donc lors de la création d'une nouvelle page avec la mise en page, la partie Web ne sera pas inclus.
  4. Nous ne savons pas comment faire cela, étant donné que la mise en page est définie après création de la page. Nous n'avons des crochets pour définir la mise en page par défaut en fonction de l'endroit où la structure la page est créée, ici, nous pouvons ajouter la partie web aussi bien, mais la partie Web ne sera ajoutée si vous créez une page sur un emplacement spécifique.
Était-ce utile?

La solution

Puisque vous utilisez SP2010, vous devriez être en mesure d'utiliser le WebProvisioned événement crochet dans des fonctionnalités supplémentaires telles que celle que vous demandez.

Dans SP2007 j'utiliser l'une des méthodes que vous mentionnez ci-dessus en fonction de ce que je avais besoin. Le dernier j'obtenir à l'aide d'un fournisseur d'approvisionnement personnalisé. Vérifiez mon autre post sur ce .

Autres conseils

J'utilise votre méthode 1. et 2. largement. Je ne peux pas suivre le problème que vous décrivez pour la solution 1. En dehors de cela avoir les deux solutions (1. et 2.) l'inconvénient que toutes les parties du Web sont dupliqués chaque fois que la fonction du déploiement des pagelayouts est réactivée et vous avez besoin du code de nettoyage pour résoudre ce problème.

J'utilise le numéro 1 voie (sur le message original) et il fonctionne parfaitement. parties Web ne deviennent pas statiques, sauf si vous avez défini les propriétés des pièces Web pour interdire le déplacement ou la fermeture d'une partie Web, ou si vous ne disposez pas des autorisations suffisantes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top