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

david8888 Messages postés 5 Date d'inscription jeudi 6 mars 2008 Statut Membre Dernière intervention 26 juin 2008 - 16 juin 2008 à 12:29
david8888 Messages postés 5 Date d'inscription jeudi 6 mars 2008 Statut Membre Dernière intervention 26 juin 2008 - 17 juin 2008 à 19:03
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 :
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
 
foreach(Repeater item in rptElements.Items){
TextBox txt1 = (TextBox)item.FindControl("txt1");
txt1.Attributes.Add("OnChange", "GET();");
}
 

<!-- END TEMPLATE: bbcode_code -->et le JavaScript :
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
 
<script language="javascript" type="text/javascript" >
function GET(){
var txt1 = document.getElementById("<%=txt1 %>");
alert('La valeur est ' + txt1.value);
}
 

<!-- END TEMPLATE: bbcode_code -->Merci par avance pour vos infos.

David.

2 réponses

david8888 Messages postés 5 Date d'inscription jeudi 6 mars 2008 Statut Membre Dernière intervention 26 juin 2008
16 juin 2008 à 18:17
La solution à mon 1er Pb est :

foreach (Repeater item in rptElements.Items)
{
TextBox txt1 = (TextBox)item.FindControl("txt1");
txt1.Attributes.Add("OnChange", "GET('" + txt1.ClientID +"');");
}

Mais je dois en réalité, additionner cette valeur avec une autre valeur d'un TextBox placé dans Le Répéteur fils.
Le résultat sera à afficher dans un Label situé aussi dans ce répéteur fils.

Merci d'avance pour vos conseils.

David.
0
david8888 Messages postés 5 Date d'inscription jeudi 6 mars 2008 Statut Membre Dernière intervention 26 juin 2008
17 juin 2008 à 19:03
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 :
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
 
function Calcul(id1){
var numero = 5;
var idX = "ctl00_cphMain_rptElements_ct0" + num + "_ctl05_txtDimension_Largeur";
var largeur = idx.value;
alert(' largeur= ' + largeur);
}
 

<!-- END TEMPLATE: bbcode_code -->Malheureusement, ça marche pas. Ca ne s'éxécute même pas.

Merci par avance pour vos idées.

David.
0
Rejoignez-nous