2009-07-10 14 views
0

Je pensais que ce serait assez simple, mais devinez pas. J'ai le code suivant, il déploie et active juste très bien, mais quand j'ajoute un nouveau document à la bibliothèque de document, rien ne se produit. Pas d'erreurs non plus. Et ceci est pris directement d'un autre exemple de quelqu'un en ligne qui a dit que cela fonctionne.Affectez une valeur à une colonne personnalisée lorsqu'un document est ajouté ou créé dans une bibliothèque de documents SharePoint

Voici le code pour ma fonction:

using System; 
using System.Collections.Generic; 
using System.Text; 
using Microsoft.SharePoint; 

namespace DocNumGenerator 
{ 
    class DocNumGenerator : SPItemEventReceiver 
    { 
     public override void ItemAdded(SPItemEventProperties properties) 
     { 
      base.ItemAdded(properties); 
     } 

     public override void ItemAdding(SPItemEventProperties properties) 
     { 
      properties.AfterProperties["DocNum"] = "4321"; 
      base.ItemAdding(properties); 
     } 

     public override void ItemUpdated(SPItemEventProperties properties) 
     { 
      base.ItemUpdated(properties); 
     } 

     public override void ItemUpdating(SPItemEventProperties properties) 
     { 
      base.ItemUpdating(properties); 
     } 

    } 
} 

droit simple! Pourquoi ça ne marche pas? Ai-je besoin de spécifier le nom de la bibliothèque de documents en plus du nom de la colonne personnalisée que je spécifie? Je suis perdu sur celui-ci et désespérée pour une solution. Ceci est un environnement SharePoint 2007, site de publication.

Merci pour toute aide!

Répondre

0

Je l'ai à work..and je jure que je l'avais essayé auparavant. J'ai aussi fait un redémarrage, alors peut-être que c'était ça ???

est ici ce qui fonctionne pour moi maintenant:

public override void ItemAdding(SPItemEventProperties properties) 
     { 
      this.DisableEventFiring(); 
      properties.AfterProperties["Document Number"] = "whatever"; 
      this.EnableEventFiring(); 
     } 
+0

La nécessité d'un redémarrage indique que, même si votre dossier avait été déployé dans le GAC, un processus a été verrouillant. La prochaine fois, essayez d'exécuter IISRESET et voir si cela fonctionne alors. –

0

Pourriez-vous essayer la première base d'appel, base.ItemAdding (properties) ;, puis définissez simplement properties.ListItem ["DocNum"] et l'appel properties.ListItem.SystemUpdate (false);

0

Est-ce que DocNum est le nom affiché ou le nom interne? Essayez de changer entre ceux-ci.

0

Essayez ceci dans le gestionnaire d'événements ItemAdded:

DisableEventFiring(); 
SPListItem item = properties.ListItem; 
item["DocNum"] = "4321"; 
item.Update(); 
EnableEventFiring(); 
Questions connexes