2012-02-15 3 views
1

У меня есть список переключателей, а не radioobuttonlist, мне нужно выяснить, какой из них проверен. Контейнер - это div. Но у меня также есть другие элементы управления в этом div. Как найти проверочный переключатель? Мой код выглядит следующим образом:Как найти проверочный переключатель на странице aspx

foreach (RadioButton rb in divContainer.Controls) 
     { 
      .... 

     } 

Он выходит с ошибкой whhich говорит: «Не удалось привести объект типа„System.Web.UI.ResourceBasedLiteralControl“к типу«System.Web.UI.WebControls.RadioButton »«.

Это веб-приложение, .net, я использую C#

ответ

1

Вы можете изменить цикл для:

foreach (RadioButton rb in divContainer.Controls.OfType<WebControls.RadioButton>()) 
{ 
    .... 

Этот цикл будет только контроль требуемого типа. Если вы не можете использовать Linq, вы можете попытаться использовать «is», чтобы узнать, является ли элемент управления RadioButton, и если это так, используйте его в противном случае для следующего.

0

Вот старая школа (не LINQ) способ ...

foreach (Control ctrl in divContainer.Controls) 
{ 
    bool isRadioButton = ctrl is RadioButton; 
    if (!isRadioButton) 
    continue; 

    RadioButton rb = ctrl as RadioButton; 
.... 
} 
Смежные вопросы