2010-12-01 5 views
0

У меня есть GridView и в его обратном вызове OnRowDataBound. Я добавляю новую ячейку и в эту ячейку добавляю RadioButton. Я установил GroupName на переключатель, но я все же могу выбрать более одной кнопки за раз.ASP.NET C# - RadioButtons не сгруппированы

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

EDIT - Это мой код:

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

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

ответ

1

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 есть), имена больше не все равно от группового свойства в результате из way asp.net называет вещи внутри ретранслятора (по сути, каждый элемент управления получает префикс, чтобы сделать его уникальным).

+0

Я не хочу, чтобы весь список в одной ячейке. Я хочу одну кнопку в строке. – Justin808

+0

В итоге вам придется использовать javascript после факта, чтобы нормализовать имена из того, что я могу сказать. Подобные проблемы - вот почему я переключаюсь на MVC. –

+0

Я использовал параметр javascript. MS - куча идиотов порой. – Justin808

0

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

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); 
      } 
+0

im не устанавливает ничего на переключателе в этот момент, кроме того, что дает им все одинаковое имя GroupName. – Justin808

+0

Нет, ему нужны * одинаковые * имена в html, которые, по-видимому, отображаются как ретрансляторы webforms asp.net, делают плохую работу. –

+0

Justin Я добавлю код через минуту (отредактировал бы мой пост) – Pabuc

Смежные вопросы