2015-08-13 4 views
1

Я пытаюсь установить флажок на моей веб-форме, но не могу? Он всегда установлен в NULL? Я пробовал разные подходы (я устанавливается с помощью цикла For, я использую Masterpage а):Не удается установить флажок в webform

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()); 

Любые идеи ?

+0

Вы покажете, как вы сделали этот снимок? – BugFinder

ответ

1

Я установил флажки внутри панели и смог получить к ним доступ с Panel1.FindControl в соответствии с @linuser.

Ощущается как быстрое исправление, но оно работает.

1

Findcontrol работает с идентификатором, а не с идентификатором клиента (как выглядит ваш первый блок кода).

Используйте Findcontrol для родительского объекта (не всегда, если я прав). Если флажок установлен на теле страницы, используйте параметр Page.FindControl или this.FindControl. Например, если он включен в список, используйте его в соответствующем событии.

+0

Сделал изменения, продолжайте получать ту же ошибку. Очень странно. –

1

Вы можете попробовать этот код:

foreach (Control c in Panel1.Controls) 

    { 

    CheckBox cb = c as CheckBox; 
    if(cb!=null) 
     { 

     } 
    } 

Здесь Panel1 содержит все checkbox..thank вас.