2014-01-07 4 views
5

Я пытаюсь найти способ перебрать все элементы управления типа «Checkbox» в ASP Placeholder, а затем сделать что-то с элементом управления в цикле.Loop through Checkboxes в Placholder

Проблема, я не могу доступ к элементам управления ... вот то, что я до сих пор ...

string selections = ""; 

foreach (CheckBox ctrl in phProductLines.Controls.OfType<CheckBox>) 
{ 
    selections += ctrl.Text + ", ";    
} 

Но я получаю ошибку - «Foreach не может работать по методу группы» ,

Любая помощь была бы принята с благодарностью.

Спасибо.

ответ

7

OfType является метод, так что вы должны добавить ():

foreach (CheckBox ctrl in phProductLines.Controls.OfType<CheckBox>()) 
{ 
    // ... 
} 

Кстати, вы можете использовать LINQ и String.Join, чтобы получить желаемый результат:

string result = string.Join(", ", phProductLines.Controls.OfType<CheckBox>() 
      .Select(chk => chk.Text)); 

Если вы хотите только Checked checkboxes:

string result = string.Join(", ", phProductLines.Controls.OfType<CheckBox>() 
      .Where(chk => chk.Checked) 
      .Select(chk => chk.Text));