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 :

Plusieurs formulaires runat server dans la même page.


Sujet :

ASP.NET

  1. #1
    Membre chevronné Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Par défaut Plusieurs formulaires runat server dans la même page.
    Salut, ne hurlez pas je sais que c'est impossible je suis allé voir la FAQ

    J'ai trouvé cet article

    Mais malheureusement il ne donne pas de moyen de contourner ce problème, comment puis-je faire.

    Pour la mise en situation, mon soucis c'est que j'ai une page avec un formulaire de contact pour aller sur l'espace administration (premier formulaire) et que j'ai un formulaire de contact " lambda" (mais avec script anti-spam ce qui oblige (je pense) au runat server) donc j'aimerais savoir comment je peux faire pour faire fonctionner les deux formulaires sur la même page.

    Est-ce que runat="server" est absolument nécessaire dans les deux cas? Y a t'il un moyen de "feinter"?

  2. #2
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Par défaut
    Salut !

    En fait, en ASP.NET tu dois avoir un formulaire runat="server" global asp.net qui englobe toute ta page (il doit normalement être présent dans ta MasterPage principale).
    Ensuite pour utiliser plusieurs formulaires sur une même page tu dois jouer avec les ValidationGroup. (Attribut que tu vas devoir placer dans tes différents input).


    EDIT : Pour mieux m'expliquer, il doit y avoir une seule balise <form> dans toute ta page

  3. #3
    Membre chevronné Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Par défaut
    Ah d'accord, j'essaie ça tout de suite et je te dit ce que ça a donné

  4. #4
    Membre chevronné Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Par défaut
    J'ai pu définir facilement les deux validation group différents par contre je ne vois pas comment exploiter ces validationgroup dans le code behind car je n'utilise pas de validator

  5. #5
    Membre chevronné Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Par défaut
    Il te faut 2 boutons. Un pour chaque masque de saisie.
    Sur ces boutons tu ajoutes le ValidationGroup ad hoc (en lien avec le ValidationGroup des inputs des masques de saisie), histoire de pouvoir valider la saisie. Ensuite en code behind, suivant le bouton qui as été cliqué, tu fait le traitement adéquat (dans l'évènement Click de chaque bouton).

  6. #6
    Membre chevronné Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Par défaut
    Alors désolé mais je suis débutant en asp.net voilà ou j'en suis dans ma page aspx: J'ai mon formulaire "global" avec des contrôles avec des validation group dans ce genre là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                    <asp:TextBox ID="TextBoxId" runat="server" ValidationGroup="connect"></asp:TextBox>
                    <asp:TextBox ID="TextBoxPass" runat="server" TextMode="Password" ValidationGroup="connect"></asp:TextBox>
                    <asp:Button ID="Button1" runat="server" Text="ok" ValidationGroup="connect"/>
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
       <tr>
                    <td>Nom</td><td>
                        <asp:TextBox ID="TextBoxNom" runat="server" ValidationGroup="contact"></asp:TextBox></td>
                    <td>Prénom</td><td><asp:TextBox ID="TextBoxPrenom" runat="server" ValidationGroup="contact"></asp:TextBox></td>
                </tr>
              ...
                    <td colspan="4" align="center">
                        <asp:Button ID="ButtonEnvoyer" ValidationGroup="contact" runat="server" Text="Envoyer" 
                             /></td>
                </tr>
    Voilà, après j'ai du mal à comprendre ce que je dois faire dans le code behind qui pour l'instant ressemble à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
     public void Button1_Click(object sender, EventArgs e)
            {
              Response.Redirect("http://www.google.fr/");
     
            }
     
    private void Page_Load(object sender, System.EventArgs e) {
            if (!this.IsPostBack) {
                 Instructions pour le formulaire de contact
             }
    }
    Le problème c'est que j'ai l'impression que lorsqu'on clique sur le button1 ça appelle quand même les instructions du formulaire contact...

  7. #7
    Membre chevronné Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Par défaut
    Essayes avec if (!Page.IsPostBack) { à la pace de if (!this.IsPostBack) {

  8. #8
    Membre chevronné Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Par défaut
    Ça a rien changé à priori

  9. #9
    Membre chevronné Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Par défaut
    De quelles intructions s'agit-il ? Car celles qui sont dans le Page_Load (enfin d'après l'extrait de code qui est fourni) sont conditionées par !IsPosback, et donc ne seront pas exécutées après un clique sur des boutons.

  10. #10
    Membre chevronné Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Par défaut
    Au temps pour moi, mon extrait de code n'était pas bon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    			if (!Page.IsPostBack)
                               //Instruction non éxécutées
    			else
    			{
     
    				//Instructions exécutées mais donc du coup je suppose
     que c'est là que je dois mettre un test pour savoir sur quel bouton on a cliqué?

  11. #11
    Membre chevronné Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Par défaut
    Le traitement a effectuer après le clique des boutons est a faire dans l'évènement Click de chaque bouton :

    public void Button1_Click(object sender, EventArgs e)

    public void ButtonEnvoyer_Click(object sender, EventArgs e)

  12. #12
    Membre chevronné Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Par défaut
    Ah oui en effet ça parait logique, je viens d'essayer de faire ça, seulement il y a encore quelque chose que je dois louper...

    j'ai fait comme on disait, les traitements sont faits dans les méthodes déclenchées sur les clics des boutons seulement il ne se passe plus rien, la page est rechargée comme si j'avais juste rafraichi. J'ai l'impression qu'il faut que c'est comme s'il fallait que j'enlève le type "submit" sur les boutons ou que je découpe mes méthodes pour qu'il se passe quelque chose dans le postBack quand même.

    La redirection ne marche même pas c'est bizarre...

    Je suis vraiment pas inspiré sur ce coup... Désolé.

  13. #13
    Membre chevronné Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Par défaut
    Et oui, il manque encore une chose :
    Il faut lier les méthodes Button1_Click et ButtonEnvoyer_Click a l'évènement Click des boutons.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <asp:Button ID="Button1" runat="server" Text="ok" ValidationGroup="connect" OnClick="Button1_Click"/> 
     
    <asp:Button ID="ButtonEnvoyer" ValidationGroup="contact" runat="server" Text="Envoyer" OnClick="ButtonEnvoyer_Click"/>

  14. #14
    Membre chevronné Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Par défaut
    Ah oui ça marche mieux d'un coup, en effet

    Merci de votre aide et de votre patience

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

Discussions similaires

  1. [2.x] Utiliser le même formulaire plusieurs fois dans la même page
    Par Daecarios dans le forum Symfony
    Réponses: 3
    Dernier message: 06/07/2012, 14h53
  2. [JpGraph] formulaire affichage image dans la même page.
    Par cycy_88 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/10/2009, 10h12
  3. Réponses: 4
    Dernier message: 23/01/2008, 16h46
  4. Plusieurs style de liens dans une même page
    Par keishah dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 23/08/2006, 14h22
  5. plusieurs formulaires 'indépendants' dans la même page
    Par mgemc2 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/08/2006, 12h49

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