Не могу найти флажок в веб-форме
Я пытаюсь найти флажок в моей веб-форме, но не могу? Всегда установлено значение NULL? Я пробовал разные подходы (я установлен через цикл FOR, я также использую мастер-страницу):
CheckBox cb = (CheckBox)this.FindControl("ctl00_ContentPlaceHolder1_sa" + i.ToString());
CheckBox cb = (CheckBox)Page.FindControl("ctl00_ContentPlaceHolder1_sa" + i.ToString());
CheckBox cb = (CheckBox)Parent.FindControl("ctl00_ContentPlaceHolder1_sa" + i.ToString());
... так же как...
CheckBox cb = (CheckBox)this.FindControl("sa" + i.ToString());
CheckBox cb = (CheckBox)Page.FindControl("sa" + i.ToString());
CheckBox cb = (CheckBox)Parent.FindControl("sa" + i.ToString());
Есть идеи?
3 ответа
Я установил флажки внутри панели и смог получить к ним доступ с помощью Panel1.FindControl согласно @linuser.
По ощущениям как быстрая фиксация, но это работает.
Вы можете попробовать этот код:
foreach ( Control c in Panel1.Controls )
{
CheckBox cb = c as CheckBox;
if(cb!=null)
{
}
}
Здесь Panel1 содержит все флажки.. спасибо.
Findcontrol работает с идентификатором, а не сгенерированным идентификатором на стороне клиента (как выглядит ваш первый блок кода).
Используйте Findcontrol для родительского объекта (не всегда необходимо, если я прав). Если флажок находится в теле страницы, используйте Page.FindControl или this.FindControl. Когда он находится в виде списка, используйте его в соответствующем событии.