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 :

Lorsque un CheckBox est cliqué : 2e textbox prend la valeur du 1er textbox qui a été déjà remplit


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut Lorsque un CheckBox est cliqué : 2e textbox prend la valeur du 1er textbox qui a été déjà remplit
    J’ai un formulaire avec 2 textbox [envoyé par] et [reçu par]. Les utilisateurs remplissent ces deux textbox et les envoient. Jusqu’au là il n’y a pas de problème…

    Voici le code Dans aspx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <p><asp:textbox id="mEnvoyeParTextBox" runat="server" style="text-transform:uppercase"></asp:textbox>
                          <asp:requiredfieldvalidator id="Requiredfieldvalidatorpnom" runat="server" errormessage="Envoyé par qui ?"
    							text="*" controltovalidate=" mEnvoyeParTextBox"></asp:requiredfieldvalidator></p>
     
    <p><asp:textbox id="mRecuParTextBox" runat="server" style="text-transform:uppercase"></asp:textbox>
                          <asp:requiredfieldvalidator id="Requiredfieldvalidatorpnom" runat="server" errormessage="Reçu par qui"
    							text="*" controltovalidate=" mRecuParTextBox"></asp:requiredfieldvalidator></p>
    dans cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void SetPageState()
    		{
    			mSubscriptionPageState.EnvoyePar = ConvertString (mEnvoyeParTextBox.Text);
    			mSubscriptionPageState. RecuPar = ConvertString (mRecuParTextBox.Text);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public struct SubscriptionPageState
    		{
    			public int SelectedIndex;
    			public PriceOfferStruct[] PriceOffers;
     
    			public string EnvoyePar;
    			public string RecuPar;

    Ce que je veux faire :

    Mettre un CheckBox entre les 2 champs : Si c’est la même personne qui envoie et reçoit,

    l’utilisateur ne remplit que le 1er textBox (envoyé par)

    ensuite clique sur le checkbox.

    Lorsque le checkBox est cliqué, l’application remplit automatiquement la 2e textbox par la valeur du 1er textbox

    Je ne sais pas comment je peux faire voici mon idée

    Dans aspx :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <p><asp:textbox id ="mEnvoyeParTextBox" runat="server" style="text-transform:uppercase"></asp:textbox>
                          <asp:requiredfieldvalidator id="Requiredfieldvalidatorpnom" runat="server" errormessage="Envoyé par qui ?"
    							text="*" controltovalidate=" mEnvoyeParTextBox"></asp:requiredfieldvalidator></p>
     
    <p><asp:CheckBox ID="chckMemeValeur" runat="server" Text=" Cochez ici si c’est la même personne qui l’envoie et le reçoit"></asp:CheckBox> </p>
     
     
    <p><asp:textbox id="mRecuParTextBox" runat="server" style="text-transform:uppercase"></asp:textbox>
                          <asp:requiredfieldvalidator id="Requiredfieldvalidatorpnom" runat="server" errormessage="Reçu par qui"
    							text="*" controltovalidate=" mRecuParTextBox"></asp:requiredfieldvalidator></p>
    dans cs
    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
    private void SetPageState()
    		{
    			mSubscriptionPageState.EnvoyePar = ConvertString (mEnvoyeParTextBox.Text);
     
     
    	if(chckMemeValeur.Checked)
    				{
     
    				mRecuParTextBox.Text = mEnvoyeParTextBox;
     
    				}
    				else
    				{
     
    				mSubscriptionPageState. RecuPar = ConvertString (mRecuParTextBox.Text);
    et plus loin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public struct SubscriptionPageState
    		{
    			public int SelectedIndex;
    			public PriceOfferStruct[] PriceOffers;
     
    			public string EnvoyePar;
    			public string RecuPar;

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Salut,

    Tu peux reformuler parce que je ne comprend pas ce que tu veux
    Citation Envoyé par PHPDOS Voir le message
    Ce que je veux faire :

    Mettre un CheckBox entre les 2 champs : Si c’est la même personne qui envoie et reçoit,

    l’utilisateur ne remplit que le 1er textBox (envoyé par)

    ensuite clique sur le checkbox.

    Lorsque le checkBox est cliqué, l’application remplit automatiquement la 2e textbox par la valeur du 1er textbox

    Je ne sais pas comment je peux faire voici mon idée
    Surtout le
    Si c’est la même personne qui envoie et reçoit,
    A+

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 207
    Points : 191
    Points
    191
    Par défaut
    En fait si je comprend bien ce que tu souhaites faire. Il faudrat regarder du côté javascript afin de pouvoir obtenir ce que tu souhaites. Sur l'événement onclick de ton checkbox tu pourras prendra la valeur dans le textbox1 et la copier dans le textbox2 ce qui évitera ainsi de causer un postback dans tapage.

    Autrement je ne suis pas vraiment certain qu'un checkbox peu causer un postback.

    De toute facon le plus facile serait de t'orienter du côté du javascript pour réaliser ce que tu souhaites.

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Citation Envoyé par stroumfs Voir le message
    Autrement je ne suis pas vraiment certain qu'un checkbox peu causer un postback.
    Si si, il suffit de mettre la propriété autopostback à vrai.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    Salut Immobilis,

    Je suis désolé pour ne pas être assez claire... Comme tu me demande je reformule :

    Autrement dit, l’utilisateur remplit 1er champ (textbox id="mEnvoyeParTextBox") avec une valeur (exemple [Toto Titi]). Et il veut aussi remplir le 2e champ (textbox id="mRecuParTextBox" ) avec la même valeur (donc, c’est [Toto Titi]). Au lieu de taper cette valeur à la 2e fois dans le 2e champ (textbox) il clique sur le CheckBox et l’application remplit le 2e textbox avec la même valeur ([Toto Titi]) que l’utilisateur a tapé dans la 1re textbox.
    Et s’il faut 2 valeurs différentes pour 2 champs, l’utilisateur ne clique pas sur le CheckBox et tape les 2 valeurs différentes dans les 2 champs.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    Bonjour Immobilis,

    donc il faut que j'ajoute alors mon checkBox devient ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p><asp:CheckBox ID="chckMemeValeur" runat="server" Text=" Cochez ici si c’est la même personne qui l’envoie et le reçoit" AutoPostBack="true" ></asp:CheckBox> </p>
    mais cela ne suffit pas n'est ce pas ?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    alors mon checkBox devient ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p><asp:CheckBox ID="chckMemeValeur" runat="server" Text=" Cochez ici si c’est la même personne qui l’envoie et le reçoit" AutoPostBack="true" ></asp:CheckBox> </p>
    il faut que je change mon code cs où j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private void SetPageState()
    soit par
    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
    public virtual bool AutoPostBack
    
    
    		{
    			mSubscriptionPageState.EnvoyePar = ConvertString (mEnvoyeParTextBox.Text);
    			
    
    	if(chckMemeValeur.Checked)
    				{
    			
    				mRecuParTextBox.Text = mEnvoyeParTextBox;
    				
    				}
    				else
    				{
    					
    				mSubscriptionPageState. RecuPar = ConvertString (mRecuParTextBox.Text);
    
    				
    				}

    ou bien soit par
    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
     protected void chckMemeValeur (object sender, EventArgs e)
    		{
    			mSubscriptionPageState.EnvoyePar = ConvertString (mEnvoyeParTextBox.Text);
    			
    
    	if(chckMemeValeur.Checked)
    				{
    			
    				mRecuParTextBox.Text = mEnvoyeParTextBox;
    				
    				}
    				else
    				{
    					
    				mSubscriptionPageState. RecuPar = ConvertString (mRecuParTextBox.Text);
    
    				
    				}

    mais je ne sais rien je me suis perdu...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    Voici le message d'erreur que j'ai obtenu :

    Cannot implicitly convert type 'System.Web.UI.WebControls.TextBox' to 'string'
    lorsque j'ai fait ainsi :

    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
    private void SetPageState()
    		{
    			mSubscriptionPageState.EnvoyePar = ConvertString (mEnvoyeParTextBox.Text);
    			
     
    	if(chckMemeValeur.Checked)
    				{
    			
    				mRecuParTextBox.Text = mEnvoyeParTextBox;
    				
    				}
    				else
    				{
    					
    				mSubscriptionPageState. RecuPar = ConvertString (mRecuParTextBox.Text);
    alors j'ai rectifié mon code :

    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
    private void SetPageState()
    		{
    			mSubscriptionPageState.EnvoyePar = ConvertString (mEnvoyeParTextBox.Text);
    			
     
    	if(chckMemeValeur.Checked)
    				{
    			
    				mRecuParTextBox = mEnvoyeParTextBox;
    				
    				}
    				else
    				{
    					
    				mSubscriptionPageState. RecuPar = ConvertString (mRecuParTextBox.Text);
    Il n'y a plus de message erreur pour afficher la page mais lorsque l'on clique sur le checkBox, le 2e champ (RecuPar) ne prend pas la valeur du 1er champ...

  9. #9
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Citation Envoyé par PHPDOS Voir le message
    Je suis désolé pour ne pas être assez claire... Comme tu me demande je reformule
    C'est plus clair effectivement. Juste une question alors: veux-tu que cette deuxième TextBox prenne la valeur de la première après un postback ou veux-tu que du javascript s'en occupe? Dans le premier cas c'est le serveur qui assigne la valeur dans le deuxième c'est le navigateur du client.

    A+

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    Bonjour Immobilis,

    Je ne sais rien, je vais que la solution est plus simple et plus stable puisque je ne suis pas un expert en aspx mais juste un apprenti…

    A mon avis c’est plus facile avec postback n’est ce pas ?

  11. #11
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Citation Envoyé par PHPDOS Voir le message
    Je ne sais rien, je vais que la solution est plus simple et plus stable puisque je ne suis pas un expert en aspx mais juste un apprenti…
    Les deux sont presque aussi stables (postback est plus stable). C'est pour quel usage, internet ou intranet?
    Citation Envoyé par PHPDOS Voir le message
    A mon avis c’est plus facile avec postback n’est ce pas ?
    Oui, mais moins confortable pour l'internaute car toute la page est rafraîchie.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    C'est pour internet (web)

  13. #13
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Les deux sont presque aussi stables (postback est plus stable). C'est pour quel usage, internet ou intranet?
    Oui, mais moins confortable pour l'internaute car toute la page est rafraîchie.
    Donc je dois faire avec javascript ? mais comment ?

  14. #14
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Bon ben je pencherais pour du javascript qui affecte à la textebox2 la valeur de la textbox1 sur le onclick de la checkbox.
    Evidement pour la stabilité, cela n'empêche pas la vérification de la donnée une fois soumise au serveur.

    Bon chuis sympa
    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
    <script language="javascript" type="text/javascript">
        function clickMe(CheckBox)
        {
            if(CheckBox.checked)
            {
                document.getElementById("TextBox2").value = document.getElementById("TextBox1").value;
            }
            else
            {
                document.getElementById("TextBox2").value = '';
            }
        }
    </script>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:CheckBox ID="CheckBox1" runat="server" Text="Click me" onclick="javascript:clickMe(this)" /><br />
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
    Ou en code behind. Les trois controles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:CheckBox ID="CheckBox1" runat="server" Text="Click me" /><br />
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
    Le code behind
    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
    protected void Page_Load(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine("<script language=\"javascript\" type=\"text/javascript\">");
        sb.AppendLine("function clickMe(CheckBox){");
        sb.AppendLine("    if(CheckBox.checked)");
        sb.AppendLine("    {");
        sb.AppendLine("        document.getElementById(\"TextBox2\").value = document.getElementById(\"TextBox1\").value;");
        sb.AppendLine("    }else{");
        sb.AppendLine("        document.getElementById(\"TextBox2\").value = '';");
        sb.AppendLine("    }");
        sb.AppendLine("}");
        sb.AppendLine("</script>");
     
        Literal lit = new Literal();
        lit.Text = sb.ToString();
     
        this.Page.Header.Controls.Add(lit);
        CheckBox1.Attributes.Add("onclick", "javascript:clickMe(this)");    
    }

    A+

  15. #15
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    Bonjour Jack,

    Super gentil,

    Ça marche, j’ai utilisé la 1re option (mettre JavaScript dans la page aspx).

    J’étais aussi curieux de voir comment je pourrais intégrer le JavaScript dans le code behind (dans le fichier cs)

    Mais ça ne marche pas.

    Il y a une erreur :
    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
    Et voici la ligne en cause
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.Page.Header.Controls.Add(lit);
    Bon, ce n’est pas si grave…

    Puisque la 1ère option marche.

    Je vais marque « résolu » sur cette discussion.

    Je suis encore curieux de savoir si je vais ajouter un 2e CheckBox (CheckBox2)…

    Comment je peux faire ?

    Est-ce que c’est comme cela :

    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
    if(CheckBox.CheckBox1.checked)
            {
                document.getElementById("TextBox2").value = document.getElementById("TextBox1").value;
            }
            else
            {
                document.getElementById("TextBox2").value = '';
            }
    if(CheckBox.CheckBox2.checked)
            {
                document.getElementById("TextBox4").value = document.getElementById("TextBox3").value;
            }
            else
            {
                document.getElementById("TextBox4").value = '';
            }
    Bonne journée et je regarde de temps en temps les video qui sont sur ton page... Excellent surtout ton texte...

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

Discussions similaires

  1. Déterminer quelle checkbox est cliquée
    Par missloo dans le forum jQuery
    Réponses: 4
    Dernier message: 05/07/2012, 09h32
  2. Afficher une div lorsqu'une checkbox est cochée
    Par nicolas2603 dans le forum jQuery
    Réponses: 3
    Dernier message: 05/02/2010, 17h15
  3. afficher une valeur sur une feuille lorsqu'une checkbox est cochée
    Par chrnoe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2008, 14h39
  4. Repetion d'une fonction lorsqu'un bouton est cliqué
    Par zmatz dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 29/05/2007, 17h21

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