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

VB.NET Discussion :

masquer textbox avec bouton


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 50
    Points : 71
    Points
    71
    Par défaut masquer textbox avec bouton
    Bonjour,
    je rencontre un problème pour une chose qui me parait pourtant plutôt simple à réaliser, voici mon problème :
    j'ai un formulaire de contact contenant différentes textbox (nom, prénom, civilité ...) accompagné donc d'un bouton enregistrer mais aussi d'un bouton "+1 contact" signifiant ajouter un contact, lorsque je clic sur ce bouton un second formulaire identique au premier apparait ainsi qu'un autre bouton "-1 contact" permettant de supprimer ce second formulaire, donc si je clic sur ce bouton mon formulaire disparait, alors que si je clic une nouvelle fois sur le bouton "+1 contact" un troisième (et dernier) formulaire apparait, le bouton "+1 contact" quand à lui disparait, je peut donc enregistrer un, deux ou trois formulaire de contact (seul le premier est obligatoire), j'ai ajouté une image en pièce jointe pour vous aider à visualiser.
    Voici mon problème : Lorsque les formulaires 2 et 3 reste vide je n'en ai aucun je peut les ajouter/supprimer (visible/non visible) autant de fois que je le souhaite sans problème, mais lorsqu'un des deux contient du texte la je rencontre des problèmes divers et variées :
    je vous montre mon code :

    asp

    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
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
       <ContentTemplate>
            <div class="contenu_cadre">
                <asp:Panel ID="Panel_contact" runat="server">
                          <table class="tab_contact">
                                    <tr>
                                        <td style="text-align:center;padding-bottom:10px;">
                                            <asp:Label ID="lbl_contact2" runat="server" Text="Contact 2" Visible="false"></asp:Label>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:TextBox ID="txt_nom2_contact" runat="server" CssClass="txt_tab_contact" MaxLength="50" Visible="False"></asp:TextBox>
                                        </td>
                                    </tr>
                          </table>
                     </asp:Panel>
                  </div>          
            </ContentTemplate>
        </asp:UpdatePanel>
    je vous ai mis qu'un extrait histoire de voir qu'il été placé à l'intérieur d'un update panel.

    vb.net
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
     
    Protected Sub bt_ajout_contact1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles bt_ajout_contact1.Click
     
            ' on affiche le bouton - 1 contact
            bt_supp_contact1.Visible = True
     
            ' si le contact2 n'est pas encore affiché alors on l'affiche, sinon on affiche le contact3 et on cache alors le bouton +1 contact
            If txt_nom2_contact.Visible = False Then
                txt_nom2_contact.Visible = True
                txt_prenom2_contact.Visible = True
                ddl_civ2_contact.Visible = True
                txt_fonction2_contact.Visible = True
                txt_tel_fix2_contact.Visible = True
                txt_tel_mobile2_contact.Visible = True
                txt_email2_contact.Visible = True
                lbl_contact2.Visible = True
            Else
                txt_nom3_contact.Visible = True
                txt_prenom3_contact.Visible = True
                ddl_civ3_contact.Visible = True
                txt_fonction3_contact.Visible = True
                txt_tel_fix3_contact.Visible = True
                txt_tel_mobile3_contact.Visible = True
                txt_email3_contact.Visible = True
                lbl_contact3.Visible = True
                bt_ajout_contact1.Visible = False
            End If
     
        End Sub
     
        Protected Sub bt_supp_contact1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles bt_supp_contact1.Click
     
            ' on affiche le bouton + 1 contact s'il ne l'ait pas déjà
            bt_ajout_contact1.Visible = True
     
            ' si seulement contact2 est visible
            If txt_nom3_contact.Visible = False And txt_nom2_contact.Visible = True Then
                ' si toutes les box sont vides alors on les caches
                If txt_nom2_contact.Text = "" And txt_prenom2_contact.Text = "" And ddl_civ2_contact.SelectedValue = "" And txt_fonction2_contact.Text = "" And txt_tel_fix2_contact.Text = "" And txt_tel_mobile2_contact.Text = "" And txt_email2_contact.Text = "" Then
                    txt_nom2_contact.Visible = False
                    txt_prenom2_contact.Visible = False
                    ddl_civ2_contact.Visible = False
                    txt_fonction2_contact.Visible = False
                    txt_tel_fix2_contact.Visible = False
                    txt_tel_mobile2_contact.Visible = False
                    txt_email2_contact.Visible = False
                    lbl_contact2.Visible = False
                    bt_supp_contact1.Visible = False
     
                    ' si au moins une des box n'est pas vide, alors on affiche un message de confirmation 
                Else
                    bt_supp_contact1.OnClientClick = "Confirm(2)"
                    Dim confirmValue As String = Request.Form("confirm_value")
                    ' si l'utilisateur confirme alors on raz les box et on les caches
                    If confirmValue = "Ok" Then
                        txt_nom2_contact.Text = ""
                        txt_prenom2_contact.Text = ""
                        ddl_civ2_contact.Text = ""
                        txt_fonction2_contact.Text = ""
                        txt_tel_fix2_contact.Text = ""
                        txt_tel_mobile2_contact.Text = ""
                        txt_email2_contact.Text = ""
                        txt_nom2_contact.Visible = False
                        txt_prenom2_contact.Visible = False
                        ddl_civ2_contact.Visible = False
                        txt_fonction2_contact.Visible = False
                        txt_tel_fix2_contact.Visible = False
                        txt_tel_mobile2_contact.Visible = False
                        txt_email2_contact.Visible = False
                        lbl_contact2.Visible = False
                        bt_supp_contact1.Visible = False
     
                        ' si l'utilisateur annule alors on ne fait rien
                    Else              
                        txt_nom2_contact.Visible = True
                        txt_prenom2_contact.Visible = True
                        ddl_civ2_contact.Visible = True
                        txt_fonction2_contact.Visible = True
                        txt_tel_fix2_contact.Visible = True
                        txt_tel_mobile2_contact.Visible = True
                        txt_email2_contact.Visible = True
                        lbl_contact2.Visible = True
                        bt_supp_contact1.Visible = True
                    End If
                End If
     
                ' si contact3 est visible lui aussi
            Else
                ' si toutes les box de contact3 sont vides alors on les caches
                If txt_nom3_contact.Text = "" And txt_prenom3_contact.Text = "" And ddl_civ3_contact.SelectedValue = "" And txt_fonction3_contact.Text = "" And txt_tel_fix3_contact.Text = "" And txt_tel_mobile3_contact.Text = "" And txt_email3_contact.Text = "" Then
                    txt_nom3_contact.Visible = False
                    txt_prenom3_contact.Visible = False
                    ddl_civ3_contact.Visible = False
                    txt_fonction3_contact.Visible = False
                    txt_tel_fix3_contact.Visible = False
                    txt_tel_mobile3_contact.Visible = False
                    lbl_contact3.Visible = False
                    txt_email3_contact.Visible = False
     
                    ' si au moins une des box n'est pas vide, alors on affiche un message de confirmation 
                Else
                    bt_supp_contact1.OnClientClick = "Confirm(3)"
                    Dim confirmValue As String = Request.Form("confirm_value")
                    ' si l'utilisateur confirme alors on raz les box de contact3 et on les caches
                    If confirmValue = "Ok" Then
                        txt_nom3_contact.Text = ""
                        txt_prenom3_contact.Text = ""
                        ddl_civ3_contact.Text = ""
                        txt_fonction3_contact.Text = ""
                        txt_tel_fix3_contact.Text = ""
                        txt_tel_mobile3_contact.Text = ""
                        txt_email3_contact.Text = ""
                        txt_nom3_contact.Visible = False
                        txt_prenom3_contact.Visible = False
                        ddl_civ3_contact.Visible = False
                        txt_fonction3_contact.Visible = False
                        txt_tel_fix3_contact.Visible = False
                        txt_tel_mobile3_contact.Visible = False
                        lbl_contact3.Visible = False
                        txt_email3_contact.Visible = False
     
                        ' si l'utilisateur annule alors on ne fait rien
                    Else
                        txt_nom3_contact.Visible = True
                        txt_prenom3_contact.Visible = True
                        ddl_civ3_contact.Visible = True
                        txt_fonction3_contact.Visible = True
                        txt_tel_fix3_contact.Visible = True
                        txt_tel_mobile3_contact.Visible = True
                        txt_email3_contact.Visible = True
                        lbl_contact3.Visible = True
                        bt_supp_contact1.Visible = True
                    End If
                End If
            End If
     
        End Sub
    donc selon les circonstance j'affiche ou non les différents contrôles, lorsque l'utilisateur clic sur le bouton "-1 contact" alors qu'au moins une textbox à été remplit (donc c'est à partir de ce moment la que commence les non-cohérence) on affiche un popup en javascript afin de lui demander s'il est sur de vouloir confirmer son choix, la première fois il ne se passe rien, il faut cliquer deux fois sur le bouton pour qu'apparaisse cette fenêtre, ensuite le choix que fait l'utilisateur (Ok ou Annuler) n'est pas toujours appliqué, au bout du deuxième essai un seul clic suffit pour afficher la fenêtre mais lors de la confirmation rien ne ce passe... et parfois lorsque les 3 formulaires sont affichés il y a comme "en retard" sur les visibilités des textbox (qui doivent toujours contenir visible=false alors qu'elle sont visible) car il m'affiche le message pour le contact2 alors que le 3 est visible ... voici la fonction en
    javascript :

    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
    <script type = "text/javascript">
        function Confirm(num)
         {
            var confirm_value = document.createElement("INPUT");
            confirm_value.type = "hidden";
            confirm_value.name = "confirm_value";
     
            if (confirm("Etes vous sur de vouloir supprimer le contact numéro  " + num + "")) 
            {
                confirm_value.value = "Ok";
            }
            else
            {
                confirm_value.value = "Annuler";
            }
            document.forms[0].appendChild(confirm_value);
        }
    </script>
    voilà, j'attends votre aide pour trouver l'erreur ou éventuellement une autre façon de faire qui donnerai le résultat voulu, merci à vous.
    Images attachées Images attachées  

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 50
    Points : 71
    Points
    71
    Par défaut
    Le problème été dû au fait que l'événement OnClientClick été exécuté à l'intérieur de l’événement click de mon bouton, donc il ne se déclenché logiquement pas au premier click car il n'était pas encore entré dans la procédure, j'ai donc résolu mon problème en appelant ma fonction coté asp :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Button ID="bt_supp_contact1" runat="server" Text="-1 contact" CssClass="boutton" Visible="false" OnClientClick="Confirm()" />

    j'ai donc dû réaliser quelques modifications et effectué mes tests directement dans ma fonction JavaScript

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

Discussions similaires

  1. matplotlib masquer courbe avec bouton tkInter
    Par RyzenOC dans le forum Bibliothèques tierces
    Réponses: 3
    Dernier message: 09/04/2015, 09h04
  2. Appeler un module via un TextBox avec Bouton Entrer
    Par nadong dans le forum VB.NET
    Réponses: 4
    Dernier message: 12/02/2014, 23h31
  3. [XL-2003] Macro de recherche dans un userform avec bouton et textbox
    Par guilo49 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/11/2009, 14h38
  4. Réponses: 7
    Dernier message: 28/05/2008, 10h48
  5. gridview avec textbox et bouton rechercher
    Par hermine dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/07/2007, 15h30

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