ASP.NET c # - RadioButton не сгруппированы - PullRequest
0 голосов
/ 02 декабря 2010

У меня есть GridView и в его обратном вызове OnRowDataBound я добавляю новую ячейку, а в эту ячейку я добавляю RadioButton.Я установил имя группы на переключателе, но я все еще могу выбрать более одной кнопки одновременно.

Как сделать так, чтобы они были сгруппированы так, чтобы в группе можно было выбрать только одну кнопку.

РЕДАКТИРОВАТЬ - это мой код:

    // Add the radio button to select if this purchased address
    // is set the the home address of the contact
    e.Row.Cells.AddAt(0, new TableCell());
    RadioButton rbSetAddress = new RadioButton();
    rbSetAddress.ID = "rdSetAddress" + e.Row.Cells[2].Text;
    rbSetAddress.GroupName = "SetAddress";
    e.Row.Cells[0].Controls.Add(rbSetAddress);

Итак, я устанавливаю уникальный идентификатор и то же имя группы.ASP.NET НЕ устанавливает атрибут имени ввода для GroupName.Поэтому я могу выбрать столько переключателей, сколько захочу.Это не то, что я хочу, чтобы произошло.Я хочу иметь возможность выбрать один и только один в группе, определенной GroupName.

Ответы [ 2 ]

1 голос
/ 02 декабря 2010

http://www.codeproject.com/KB/webforms/How_group_RButtons.aspx

http://www.developer.com/net/asp/article.php/3623096/ASPNET-Tip-Using-RadioButton-Controls-in-a-Repeater.htm

По сути, когда в повторителе любого типа (которым является GridView), имена больше не совпадают со свойством group, какрезультат того, как asp.net называет вещи внутри ретранслятора (по сути, каждый элемент управления получает префикс, делающий его уникальным).

0 голосов
/ 02 декабря 2010

Вы уверены, что даете разные названия радиокнопкам на коде?

for (int i = 0; i < 10; i++)
            {
                RadioButton rb = new RadioButton();
                rb.ID = "rb"+i;
                rb.GroupName="rbGroup";
                GridView1.Rows[i].Cells[3].Controls.Add(rb);
            }
...