Попробуйте это:
1 - Определить Repeater
:
<asp:Repeater ID="rptDummy" runat="server" OnItemDataBound="rptDummy_OnItemDataBound" >
<ItemTemplate>
<asp:RadioButtonList ID="rbl" runat="server" DataTextField="Item2" DataValueField="Item2" />
</ItemTemplate>
</asp:Repeater>
2 - Построить структуру данных и связать ретранслятор:
List<Tuple<string,string>> values = new List<Tuple<string,string>>();
foreach (DataTable dt in ds.Tables){
foreach (DataRow r in dt.Rows){
string text = r[1] + " " + r[2] + " " + r[3] + " " + r[4];
string groupName = (string)r[5];
values.Add(new Tuple<string,string>(groupName, text));
}
}
//Group the values per RadioButton GroupName
rptDummy.DataSource = values.GroupBy(x => x.Item1);
rptDummy.DataBind();
3 - Определение Событие OnItemDataBound
:
protected void rptDummy_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
IGrouping<string, Tuple<string, string>> group = (IGrouping<string, Tuple<string, string>>)e.Item.DataItem;
RadioButtonList list = (RadioButtonList)e.Item.FindControl("rbl");
list.DataSource = group;
list.DataBind();
}
}
Вы видите, каждый IGrouping<string, Tuple<string, string>>
относится к группе радиокнопок определенной ИмяГруппы, они также элементы из ретранслятора. Для каждого элемента мы создаем новый RadioButtonList, который представляет всю группу RadioButtons.
Вы можете сделать это лучше с помощью другой структуры данных, чем Tuple
, часто неясно, какие Item1
и Item2
средства.
UPDATE:
Если вы хотите увидеть выбранные значения:
protected void button_OnClick(object sender, EventArgs e)
{
foreach (RepeaterItem item in rptDummy.Items)
{
RadioButtonList list = (RadioButtonList)item.FindControl("rbl");
string selectedValue = list.SelectedValue;
}
}
пост ASPX код повторителя, код, где выборки данных, и где вы называете этот метод? –
Вы привязываете список переключателей к ретранслятору вместо данных. Если вы положили переключатель в повторителе itemTemplate и просто привязывали данные, вы должны были его получить. –
В отличие от сайтов на форуме мы не используем «Спасибо» или «Любая помощь оценена» или подписи на [so ]. См. «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be –