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 :

fonction JavaScript et asp:Repeater => Comment récupérer le bon TextBox ?


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut fonction JavaScript et asp:Repeater => Comment récupérer le bon TextBox ?
    Bonjour,

    Alors, voilà,
    j'ai 1 page dans laquelle j'ai 2 zones de saisies.
    Chaque zone correspond à 1 Item d'1 Repeater.
    1 zone = 1 asp:TextBox.
    Les TextBox sont initialisées à 0.

    Au load de la page je génére 2 zones (non alternées) générées par répéteur. En fait je "Bind" 1 répéteur sur un 1 objet qui est 1 liste composée de 2 éléments. D'où génération de 2 zones.
    A chaque TextBox, j'associe 1 fonction qui affiche le TextBox dans 1 "alert" ("La valeur est ...").

    Si l'utilisateur rempli "1" dans le 1er TextBox, on affiche : "La valeur est 0" (problème!).
    Ensuite, pour le 2ème, on saisi "2", il s'affiche : "La valeur est 2" (OK).
    Si l'utilisateur écrit 10 dans le 1er TextBox, il s'affiche "La valeur est 2" (problème!).

    Comment distinguer les différents Items d'un répéteur, en JavaScript?

    Ci-dessous extrait du code-behind de la fonction Load :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach (Repeater item in rptElements.Items)
    {
       TextBox txt1 = (TextBox)item.FindControl("txt1");
       txt1.Attributes.Add("OnChange", "GET();");
    }
    et le JavaScript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <script language="javascript" type="text/javascript" >
    function GET()
    { 
       var txt1 = document.getElementById("<%=txt1 %>");
       alert('La valeur est ' + txt1.value);
    }
    Merci par avance pour vos infos.

    David.

  2. #2
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Essai plutôt comme ça :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach (Repeater item in rptElements.Items)
    {
       TextBox txt1 = (TextBox)item.FindControl("txt1");
       txt1.Attributes.Add("OnChange", "GET('" + txt1.ClientId + "');");
    }
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <script language="javascript" type="text/javascript" >
    function GET(txtBox)
    { 
       var txt1 = document.getElementById(txtBox);
       alert('La valeur est ' + txt1.value);
    }
    </script>

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut Superbe, ça marche ! Reste juste 1 Problème ...
    Merci, ça marche !

    Il me reste encore 1 problème :
    je dois faire 1 addition en javascript entre cette valeur qu'on vient de récupérer et 1 valeur d'1 TextBox situé dans la page.

    L'ID du TextBox à récupérer est : ctl00_cphMain_rptElements_ct05_ctl05.
    Le problème est que je travaille avec des Répéteurs, donc j'ai besoin de pouvoir faire varier l'ID (je dois utiliser un string pour l'ID).
    Avec cette Fonction JavaScript, j'essaie de récupérer la valeur du TextBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function Calcul(id1)
    {
       var numero = 5;
       var idX = "ctl00_cphMain_rptElements_ct0" + num + "_ctl05_txtDimension_Largeur";
       var largeur  = idx.value;
       alert(' largeur= ' + largeur);
    }
    Malheureusement, ça marche pas. Ca ne s'éxécute même pas.

    Merci par avance pour vos idées.

    David.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut Fantastique !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     :lol:
    function...
       var num = 1;
       var idX = 'ctl00_cphMain_txt' + num;
       var width = document.getElementByID(idx).value
       alert('width= ' + width);
    ...
    C'est bon.

    David.

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

Discussions similaires

  1. Appeler une fonction JavaScript (en ASP) ?
    Par sperron dans le forum ASP
    Réponses: 25
    Dernier message: 12/02/2010, 09h46
  2. Réponses: 3
    Dernier message: 28/05/2009, 15h04
  3. Réponses: 1
    Dernier message: 28/05/2009, 14h45
  4. Réponses: 2
    Dernier message: 23/06/2008, 16h27
  5. [VB.Net] Comment récupérer dans un textbox une donnée BDD ?
    Par zzzmoi dans le forum Accès aux données
    Réponses: 10
    Dernier message: 08/07/2007, 02h08

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