2009-10-30 4 views
0

J'ai un bouton de déconnexion sur mon menu principal et je veux qu'il exécute une méthode pour se déconnecter. Cependant, je veux stocker cette méthode dans une classe séparée en tant que méthode statique, car ce code peut être appelé à partir d'autres emplacements.Le bouton ASP.NET indique qu'il ne peut pas trouver la méthode que j'ai mis dans OnClick

compilateur message d'erreur:

CS1061: 'ASP.adminpages_masterpages_adminsystem_master' does not contain a definition for 'ExtensionMethods' and no extension method 'ExtensionMethods' accepting a first argument of type 'ASP.adminpages_masterpages_adminsystem_master' could be found (are you missing a using directive or an assembly reference?)

Ma ExtensionMethods classe:

namespace ExtensionMethods 
{ 
    public static class MyExtensionMethods 
    { 
     public static void Logout(object sender, EventArgs e) 
     { 
       //Logout Code 
     } 
    } 
} 

Mon bouton:

<asp:LinkButton runat="server" OnClick="ExtensionMethods.MyExtensionMethods.Logout" Text="Log Out"></asp:LinkButton> 

Idées?

Répondre

2

Vous devez gérer le bouton-clic sur le code-behind et laissez-le appeler votre méthode statique dans une autre classe.

<asp:LinkButton id="button1" runat="server" 
     OnClick="LinkButton_Click" Text="Log Out"></asp:LinkButton> 

code-behind:

void LinkButton_Click(Object sender, EventArgs e) 
    { 
     ExtensionMethods.MyExtensionMethods.Logout(sender, e); 
    } 

Vérifiez la référence pour d'autres exemples: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.click.aspx

+0

Ce n'est pas dans le codebehind cependant, c'est dans une classe séparée, alors comment le trouver? – NibblyPig

+0

@SLC: Ok, j'ai modifié ma réponse –

+0

J'espérais éviter cela et le lier directement, mais s'il n'y a pas d'autre moyen, je le ferai comme ça, applaudissements. – NibblyPig

0

Votre gestionnaire d'événements devrait vraiment être dans la classe de page et ne pas être statique. Il devrait idéalement être protégé, mais il peut être public.

+0

@Kieron: Vous et moi avons mal compris sa question. La fonction à déclencher est en dehors de la portée de la page. :) –

Questions connexes