2015-03-10 4 views
0

Я хочу контролировать значение каждой строки в повторителе, чтобы изменить изображение, если значение отличается. Моя проблема в том, что я не могу получить значение из ретранслятора, пытаясь получить данные по каждой строке(). Как я могу это решить?Как изменить изображение кнопки изображения путем проверки значения получает из базы данных в цикле? in 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

_ «не может получить значение из повторителя с помощью строки» _ пожалуйста, перечитайте это, что это значит? О каких «строках» вы имеете в виду, что происходит с вашим кодом? –

+0

'(ImageButton) replater_talepler_list.Controls [4] .Controls [0] .FindControl (" islemeAlButton ");' это очень плохо, что происходит, когда новый элемент управления добавлен и ваш индекс сброшен? Почему вы не можете просто выполнить 'replater_talepler_list [i] .FindControl (" etc ... ")' или у вас есть вложенные репитеры? – DGibbs

ответ

2

Я предполагаю, что вы не можете найти ImageButton с repeater_talepler_list.Controls[4].Controls[0].FindControl("islemeAlButton").

Использование FindControl на полной RepeaterItem вместо вложенного контроля в нем:

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

спасибо, он работает. – lkalay