IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[VB.Net] Comment appeler une méthode de Page depuis un UserControl ?


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 16
    Points : 16
    Points
    16
    Par défaut [VB.Net] Comment appeler une méthode de Page depuis un UserControl ?
    bonjour,

    j'ai trouvé pas mal d'infos sur les userControl et sur l'appel de méthodes publique d'une Page, mais je bute sur un appel bien particulier depuis le userControl d'une méthode de la page qui le contient.

    Je m'explique : mon userControl est utilisé dans différente Page .aspx, qui toutes ont une méthode nommée Enregistrer(). Je souhaite appeler cette méthode Enregistrer() sur le click d'un linkButton du userControl, mais pas moyen !!
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    PrivateSub LinkButton_Click(ByVal sender AsObject, ByVal e As EventArgs)
    Dim lkBtn As LinkButton = CType(sender, LinkButton)
    Dim myTypePage as Type = getType(PAge)
     
    CType(Page, MyTypePage).Enregistrer()
    end sub
    
    Ctype n'accepte pas myTypePage comme un type valide ...

    Si qqn a déjà rencontré le problème, merci d'avance !!

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Salut,

    Tu ne peux pas faire ça en .Net :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim myTypePage as Type = getType(PAge)
    CType(Page, MyTypePage).Enregistrer()
    Car myTypePage n'est pas un type mais une instance de la classe Type qui décrit un type . On ne peut pas manipuler les types comme on manipule les instances. Par contre l'héritage et l'implémentation d'interface peuvent t'aider.

    La solution à ton probleme c'est que tte tes pages implémentent une interface IMonInterface qui défini une méthode Enregistrer , puis que tu fasses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CType(Page, IMonInterface).Enregistrer()
    Et si l'implémentation de ta méthode Enregistrer est la même dans toute tes pages tu fais une classe de base qui contient l'implémentation de ta méthode plutôt qu'une interface.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    effectivement, maintenant que tu en parles l'utilisation d'une interface me parait plus qu'appropriée dans ce cas-là !!

    merci !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL-Server] Comment appeller une fonction stockée en MS SQLServer depuis PHP ?
    Par momoG dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/12/2008, 16h11
  2. sendandload ou comment appeler une url sans afficher la page
    Par xian21 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 5
    Dernier message: 26/09/2008, 10h51
  3. [VB.NET]Comment appelé une procédure click d'un bouton?
    Par mustang-f27 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/11/2006, 13h01
  4. Réponses: 5
    Dernier message: 01/08/2006, 13h41
  5. Réponses: 24
    Dernier message: 26/05/2006, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo