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 :

[C#] Custom Control : Recuperer valeur formulaire


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut [resolu][C#] Custom Control : Recuperer valeur formulaire
    Bonjour,

    J'ai créé un custom control pour un intranet (en fait un formulaire), mais je souhaite récupérer les valeurs envoyées lorsque l'on clique sur le bouton submit. Or dans le controle je n'ai rien trouvé comme méthode héritée qui permet de récupérer des valeurs passées en POST ou GET.
    Merci !

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    salut

    toutes les valeurs renvoyées par ton form sont récupérables dans ta page grpace à l'objet "Request".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var = Request["variableàrécuper"]
    ça répond à ton problème ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Salut !
    Non je ne crois pas, car je veux récupérer ces valeurs à partir de mon composant web personnalisé, qui lui même est inclu dans ma page web.

    Cela veut dire que je n'ai pas accès à la méthode Request dans mon composant, car ca n'est pas une page mais juste un controle.

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    moi ce que j'ai compris c'ets que tu as un usercontrol qui est en fait un formulaire. Quand tu submit ton formulaire (et donc ton user control), tu souhaites récupérer les valeurs saisies dans ce formulaire . C'ets bien ça ?

    si c'ets le cas, quand tu fais le submit, tu es redirigé vers la page mentionnée dans l'attribut "action" de ton formulaire. Quand tu vas charger cette nouvelle page, tu auras accès à l'objet "Request" qui contiendra ce que tu as posté.

    on se comprend lol ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Je vois là ou l'on ne s'est pas compris ! Tu parles de user control et moi de custom control. Ca veut dire que je code moi meme le controle sans mode "design". Je n'ai donc pas la possibilité de "voir" le bouton et de cliquer dessus pour générer un évenement...

  6. #6
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Pour ceux qui ne savent pas:

    User Control = on le voit, on le recopie dans chaque projet etc.
    Custom Control = on ne le voit, c'est purement et simplement du code dans une dll que l'on ajoute dans la boite à outils de VS.NET comme pour un simple Lable. Ainsi, le code est inclus dans la dll qui sera créée et il n'y a pas de fichier .ascx.

    Un tuto est en cours au vu des nombres questions sur ces deux choses.

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    Ok.

    Mais je continue à pense rque ce n'est pas directement depuis ton custom control que tu dois chercher à récupérer les valeurs de Post et get mais depuis la page qui le contient.

    je t'explique à quoi je pense
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
     //Ici c'est la code de la page "contenant" le custom control
    Class MaPage{
    Page_Load()
    {
          //ici tu récupères tous les paramètres (POST ou Get) qui t'intéresses
        param1 = Request["nomduparma”]
        etc...
     
       //ici ton custom control est chargé
       moncontrol control = LoadControl(controleàcharger)
     
       //ici ton construit une list de paramètre à envoyer a ton custom  
       control et tu les envoie 
       SortedList list = new SortedList()
        list.add = ("nomduparma",param)
        etc....
     
        ((Customcontrol) control). SetParam(list)
    }
    }
     
    et maintenant le code de ton custom control
    Class Custom{
     
    //Constructeurs
    ...
     
    //Méthodes publiques
      public void SetParam(SortedList listdeparam)
      {
           //cette méthode prend en paramètre des valueurs qqconques
          //tu affectes ensuite ces valeurs à des attributs privés ou publiques    de ton custopm control
           this.monattribut = listdeparam[clé].tostring()
      }
    }
     
    //
    non toujors à côté de ton problème ?

  8. #8
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Un système de propriétés serait plus adéquat.

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    tout à fait, mais bon je ne sais pas exactement tout ce qu'il veut récupérer et donc je faisais au plus souple (possibilité de surcharges etc...)..

  10. #10
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Citation Envoyé par Foreveryoung
    tout à fait, mais bon je ne sais pas exactement tout ce qu'il veut récupérer et donc je faisais au plus souple (possibilité de surcharges etc...)..
    C'était pas à toi que je répondais

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 13
    Points
    13
    Par défaut

  12. #12
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Merci pour tout, ca m'a permis d'avancer dans ma reflexion. Je vois bien la technique que vous proposez, mais ca me pose un problème :
    j'ai créé un controle justement pour éviter d'avoir à coder dans la page des traitements qui concernent ce controle, car il doit etre utilisé dans n'importe quel projet .net et tout simplement. Donc si il faut rajouter à chaque fois du code dans le page_load ca casse un peu mes objectifs...
    Donc d'après vous il n'y a aucun moyen simple de récupere l'httprequest de la page directement depuis l'interieur du controle ?
    Merci

  13. #13
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Je pourrai te répondre dans 4/5 jours quand j'aurai avancé dans mes tests

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


  14. #14
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    et bien je ne sais pas trop.

    tu peux essayer dans le constructeur de ton contrôle de récupérer sses parents (les contrôles qui le contiennent) jusqu'a tomber sur un control de type Page web.
    Ensuite tu récupères l'objet Request de ce parent.

    et voilà, théoriquement (je ne connais pas du tout les custom control donc je reste prudent) tu obtiens tous les paramètres qe tu voulais sans coder dans la page contenant le custom control.

  15. #15
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    J'ai suivi ton conseil en faisant ca dans le constructeur du controle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebControl myparent = (WebControl)this.Parent;
    mais j'ai une erreur qui me dit "La référence d'objet n'est pas définie à une instance d'un objet". Normal ?

  16. #16
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    muf, je comprends pas trop ce message d'erreur

    qudn il parle de référence d'objet, il parle du this ? ou du parent ?
    c'ets une erreur à la compilation du custom control ou alors pendant son utilisation ?

  17. #17
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Foreveryoung
    muf, je comprends pas trop ce message d'erreur

    qudn il parle de référence d'objet, il parle du this ? ou du parent ?
    c'ets une erreur à la compilation du custom control ou alors pendant son utilisation ?
    Je suis bete... difficile d'appeler le controle this quand on est dans le constructeur.. si tu vois ce que je veux dire...

  18. #18
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    il n'y a aucun problèm pour appeler le this dans un constructeur d'une classe "basique".

    les custom control obéissent à une logique différente ?

  19. #19
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Alors tu vas m'apprendre un truc : comment peut on appeler l'objet en cours avec this si il n'a pas été encore completement créé, c'est a dire si on est encore dans le constructeur ?

  20. #20
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Voici la solution a mon problème initial :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    			Page mypage = (Page)this.Parent.Parent;
    			output.Write(mypage.Request["test"]);

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. recuperer valeur formulaire dans VB
    Par PC81 dans le forum IHM
    Réponses: 2
    Dernier message: 13/05/2008, 11h04
  2. recuperer le controle d'un formulaire
    Par nogood1 dans le forum Access
    Réponses: 1
    Dernier message: 04/10/2006, 14h08
  3. [formulaire]Recuperation valeur select et réutilisation
    Par SnakemaN dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/07/2006, 16h05
  4. Réponses: 7
    Dernier message: 10/07/2006, 15h01
  5. recuperation valeur de formulaire
    Par boss_gama dans le forum ASP
    Réponses: 1
    Dernier message: 07/07/2006, 15h52

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