2015-03-10 1 views
0

Je veux contrôler la valeur de chaque ligne dans le répéteur afin de changer l'image si la valeur est différente. Mon problème est que je ne peux pas obtenir la valeur de répéteur en essayant d'obtenir des données chaque lignes(). Comment puis-je le résoudre?comment changer l'image de l'imagebutton en vérifiant la valeur obtient de la base de données dans la boucle for? dans asp.net

for (int i = 0; i < repeater_talepler_list.Items.Count; i++) 
     { 
     ImageButton ib=(ImageButton)repeater_talepler_list.Controls[4].Controls[0].FindControl("islemeAlButton"); 

      bool res = CheckTalep(id, User_Name); 
      if (res) 
      { 
       ib.ImageUrl = "~/images/confirm.png"; 
      } 
     } 
+1

_ « ne peut pas obtenir la valeur de répéteur en utilisant les lignes » _ s'il vous plaît relire ceci, qu'est-ce que cela signifie? De quelles «lignes» parlez-vous, que se passe-t-il avec votre code? –

+0

'(ImageButton) repeater_talepler_list.Controls [4] .Controls [0] .FindControl ("islemeAlButton"),' ce qui est très pauvre, ce qui se passe quand un nouveau contrôle est ajouté et l'index est jeté hors? Pourquoi ne pouvez-vous pas faire 'repeater_talepler_list [i] .FindControl (" etc ... ")' ou avez-vous des répéteurs imbriqués? – DGibbs

Répondre

2

Je suppose que vous ne pouvez pas trouver le ImageButton avec repeater_talepler_list.Controls[4].Controls[0].FindControl("islemeAlButton").

Utilisez FindControl sur la complète RepeaterItem au lieu d'un contrôle imbriqué en elle:

RepeaterItem item = repeater_talepler_list.Items[i]; 
ImageButton ib = (ImageButton) item.FindControl("islemeAlButton"); 
+0

merci, cela fonctionne. – lkalay