2009-10-02 11 views
2

Quelqu'un a utilisé la méthode "ItemAdding" avec succès dans un récepteur d'événements dans Sharepoint pour la validation?Sharepoint: Récepteur d'événement: Elément Ajout

Je pense qu'il ne peut pas fonctionner correctement à des fins de validation, car il semble que:

  • Vous ne pouvez pas accéder aux données que vous venez saisi dans un formulaire
  • Si vous ajoutez un message d'erreur , au lieu d'afficher le formulaire de retour avec votre erreur, Sharepoint
    afficher la grande page d'erreur laide.

Voici ce que j'ai trouvé jusqu'à présent sur le web pour la méthode ItemAdding:

http://www.sharepoint-tips.com/2006/09/synchronous-add-list-event-itemadding.html

http://www.moss2007.be/blogs/vandest/archive/2007/07/20/wss-3-0-event-handler-pre-event-cancelling-issues.aspx

http://www.synergyonline.com/blog/blog-moss/Lists/Posts/Post.aspx?ID=25

Quoi qu'il en soit, si quelqu'un a utilisé avec succès cette méthode, s'il vous plaît dire moi comment parce que je pense que c'est juste cassé/manque quelque chose!

Merci!

Répondre

5

Vous ne pouvez pas utiliser ItemAdding pour effectuer ce type de vérification de validation "conviviale". Si vous définissez e.Cancel = true et que vous définissez e.ErrorMessage, sharepoint vous redirigera vers la page d'erreur standard et affichera votre message. Vous ne pouvez pas le rediriger vers votre page de formulaire. Plutôt que d'essayer de pirater les pages intégrées, vous devez utiliser un formulaire infopath ou aspx lié à un type de contenu. Infopath a intégré des contrôles de validation et avec les formulaires aspx que vous construisez vous pouvez le traiter comme n'importe quelle application web et choisir votre propre validation.

Pas moyen de sortir ici j'ai peur.

-Oisin

+2

Les validations personnalisées et complexes via sharepoint semblent être très pénibles ... – KitAndKat

4

Vous pouvez accéder aux données qui vient d'être ajouté sous forme. Regardez propriétés.AfterProperties dans les récepteurs d'événements d'ajout/mise à jour.

Un exemple serait properties.AfterProperties ["Title"]. Je suis d'accord que la gestion des erreurs est un peu difficile, mais je recommande que vous faites la validation dans vos récepteurs d'événements en plus de faire valider votre interface utilisateur. S'il ne s'agit pas d'une page personnalisée, vous pouvez ajouter du JavaScript aux pages existantes à l'aide d'un composant WebPart Éditeur de contenu pour effectuer la validation.

+1

Il suffit de réaliser que j'ai répondu à une question de 3 ans. Espérons que quelqu'un trouve cela utile: -S. –

+4

Il n'est jamais trop tard pour répondre à une question. Il y a toujours quelqu'un qui cherche des réponses :). Merci. –