Question

J'ai une mise en page dans une solution que j'ai déployé. La mise en page a également un type de contenu personnalisé associé.

Je souhaite mettre à jour ce type de mise en page et le contenu, mais seulement pour un endroit spécifique sur le site. La raison est que pour les mises à jour « de fonctionnement » importantes que nous voulons que la capacité d'envoyer des SMS aux utilisateurs abonnés (une fonctionnalité intégrée de Sharepoint pour les listes), ainsi que les e-mail.

La façon dont cela fonctionne est que je souhaite ajouter un champ booléen qui décide si les SMS sont envoyés ou non, et un champ pour mettre dans l'e-mail que vous voulez informé du ADRESSES le message.

Mon approche a été jusqu'à présent:

  • Créer un récepteur d'événements qui vérifie si les champs sont sélectionnés / remplis et ne l'envoi réel.
  • Modifier la page de mise en page avec les 2 nouveaux champs.
  • Modifier le type de contenu avec les 2 nouveaux champs.

Cependant, je crains des complications pour le reste du site. Pour l'instant, l'utilisation future de la mise en page est pas un problème, seulement les utilisations existantes.

Je sais que la mise à jour d'un type de contenu grâce à des définitions XML ne se fait pas automatiquement, donc de ce côté, je suis sûr, mais comment puis-je garder la page de mise en page « contenu » à la page en question?

EDIT: Comment puis-je afficher les deux champs que lorsque vous modifiez la page, pas quand le montrer? À l'heure actuelle, mon site de développement montre la forme d'édition juste, mais quand je vais montrer la page il montre « oui » où le champ booléen est situé, et que les adresses e-mail entrées où le champ e-mail.

Était-ce utile?

La solution

Êtes-vous sûr la mise en page est associée au type de contenu, et que ce n'est pas une page qui est associée au type de contenu?

Si vous voulez des champs soient ajoutés automatiquement, vous pouvez:

  1. Créer un modèle de rendu personnalisé qui est utilisé par le Nouveau / Edition / Affichage formulaires pour votre liste (Http://weblogs.asp.net/sharadkumar/archive/2008/07/07/how-to-customize-rendering-of-sharepoint-list-form-fields-part-1.aspx)

  2. Créer un ListFieldIterator personnalisé (ou utilisez le défaut) qui décrochera automatiquement nouveau champs de votre type de contenu (Http://msdn.microsoft.com/en-us/library/aa543922.aspx)

  3. Code utilisation dans une DLL pour itérer à travers Les champs de votre type de contenu et ainsi créer les contrôles nécessaires pour votre page tous dans le code. Si tu utilises FieldControls (Http://msdn.microsoft.com/en-us/library/dd571480.aspx), il crée automatiquement la modèle par défaut rendu pour la champ (à savoir, il affichera la radio boutons, listes déroulantes, etc., comme défini par les champs de la teneur Type).

Dans votre EDIT, quand vous dites « lors de l'édition de la page », je suppose que vous voulez dire « lors de l'affichage de la page d'édition pour la liste », et non 'lors de la modification de la définition de page dans Sharepoint Designer.

En supposant cette hypothèse est exacte, vous pouvez avoir la page d'édition de la liste affiche quelque chose de complètement différent de la page d'affichage pour la liste (et de la nouvelle page pour la liste). Les pages sont, par défaut, définis complètement séparément, et sont édités complètement séparément. Toutefois, si vous utilisez quelque chose (comme le ListFieldIterator) qui sélectionne automatiquement la liste des champs pour le type de contenu, vous pouvez créer un contrôle de champ personnalisé pour les champs que vous voulez cacher et avoir le modèle de vue pour l'ensemble de commande de champ pour ne rien afficher.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top