Радиопереключатели в группе (GroupName) все проверены - PullRequest
2 голосов
/ 22 июля 2010

Итак, у меня есть три RadioButton, их нет в RadioButtonList, потому что мне нужно добавить несколько текстовых полей рядом с каждой из них.

Я добавил GroupName, и на внешнем интерфейсе они ведут себя, как и ожидалось. ТОЛЬКО ОДИН появляется проверено за один раз.

Однако в коде, если я делаю:

RadioButton1.Checked = true;
RadioButton2.Checked = true;
RadioButton3.Checked = true;

Я ожидаю, что будет проверен только последний, RadioButton3, потому что все они принадлежат к одной группе. Это не вариант. Все три оценивают как истину .... как это может быть?

Я должен явно установить для них значение false ... я что-то упустил?

1 Ответ

1 голос
/ 22 июля 2010

Я думаю, что это правильное поведение, хотя это не то, что вы могли бы ожидать.

Учтите, что RadioButton - это просто CheckBox с некоторыми расширенными функциями, которые автоматически предоставляют эту эксклюзивную функцию проверки. На заднем плане это все еще флажок. См. Иерархию от MSDN :

System.Object
    System.Web.UI.Control
        System.Web.UI.WebControls.WebControl
            System.Web.UI.WebControls.CheckBox
                System.Web.UI.WebControls.RadioButton

В выводе есть все элементы с атрибутом checked="checked" для вывода input из type="radio". Например:

<input id="rad1" type="radio" name="Test" value="rad1" checked="checked" /><label for="rad1">1</label><br />
<input id="rad2" type="radio" name="Test" value="rad2" checked="checked" /><label for="rad2">2</label><br />
<input id="rad3" type="radio" name="Test" value="rad3" checked="checked" /><label for="rad3">3</label>

Из документации Checked:

Проверено (унаследовано от CheckBox): Получает или задает значение, указывающее является ли элемент управления CheckBox проверено.

Таким образом, свойство Checked действует так же, как и версия CheckBox без включенных функциональных возможностей, для поиска других элементов управления в той же группе и удаления их, что имеет смысл, поскольку это единственный элемент управления.

...