J'ai ajouté ce récepteur d'événements (basé sur ce que j'ai trouvé here):Pourquoi ne puis-je pas appeler une méthode publique dans mon composant WebPart (contrôle utilisateur) à partir d'un récepteur d'événements?
using System;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Security;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.Workflow;
namespace PostTravelWizard.PostTravelItemEventReceiver
{
/// <summary>
/// List Item Events
/// </summary>
public class PostTravelItemEventReceiver : SPItemEventReceiver
{
/// <summary>
/// An item was added.
/// </summary>
public override void ItemAdded(SPItemEventProperties properties)
{
base.ItemAdded(properties);
//GeneratePDF(); <= "The name 'GeneratePDF' does not exist in the current context
}
/// <summary>
/// The list received a context event.
/// </summary>
public override void ContextEvent(SPItemEventProperties properties)
{
base.ContextEvent(properties);
// TODO: What "context event" occurs here? To what event should I respond?
}
}
}
J'espère, lorsqu'une liste est mise à jour (du côté client/Javascript), puis récupérer ces valeurs dans le code-behind pour générer un fichier PDF. J'ai ce code dans mon fichier * .ascx.cs:
public partial class PostTravelWizardWebPartUserControl : UserControl
{
. . .
public void GeneratePDF(PostTravelData ptd)
{
;//bla
}
... mais il ne laisse pas le mon appel GeneratePDF()
du récepteur de l'événement - il échoue avec
Le nom « GeneratePDF » ne n'existe pas dans le contexte actuel
Pourquoi? Comment puis-je rectifier cet asunto?
'GeneratePDF' est une méthode d'instance de classe' PostTravelWizardWebPartUserControl'. Pour l'appeler de 'PostTravelItemEventReceiver' vous devez créer une instance de' PostTravelWizardWebPartUserControl' ou laisser la méthode être 'static' –
Laissez la méthode être statique - celle du récepteur d'événements qui appelle la méthode dans le UserControl, ou la méthode dans UserControl? –
Laissez la méthode 'GeneratePDF' être' static' –