如何根据随机顺序将对象添加到RadioButtonList?

时间:2014-05-14 11:31:47

标签: c# asp.net random radiobuttonlist

我正在系统的后端创建一个单选按钮列表。 是否有任何方法可以让我以随机顺序显示项目?

我的代码:

<asp:radiobuttonlist id="RadioButtonList1" runat="server" 
                                TextAlign="Right" CellPadding="10" RepeatLayout="Table" 
                                CausesValidation="True" CssClass="radioAnswers" ClientIDMode="Static"></asp:radiobuttonlist>

C#

  RadioButtonList1.Items.Add(New ListItem(rsQuestion("a"), "A"))
                RadioButtonList1.Items.Add(New ListItem(rsQuestion("b"), "B"))
                RadioButtonList1.Items.Add(New ListItem(rsQuestion("c"), "C"))
                RadioButtonList1.Items.Add(New ListItem(rsQuestion("d"), "D"))

2 个答案:

答案 0 :(得分:2)

使用随机类创建一个数字列表,范围1是起始,4是单选按钮的表号。 使用listitems创建另一个列表,然后遍历数字列表并将它们添加到索引中,因为该strating必须是一个整数,您必须从数字列表中减去一个

Random ran = new Random();
var numbers = Enumerable.Range(1, 4).OrderBy(i => ran.Next()).ToList();

List<ListItem> ans= new List<ListItem>();
ans.Add(new ListItem(rsQuestion["a"].ToString(), "A"));
ans.Add(new ListItem(rsQuestion["b"].ToString(), "B"));
ans.Add(new ListItem(rsQuestion["c"].ToString(), "C"));
ans.Add(new ListItem(rsQuestion["d"].ToString(), "D"));

foreach (int num in numbers)
{
    RadioButtonList1.Items.Add(ans[num - 1]);
}

答案 1 :(得分:0)

你必须使用&#39; OrderBy&#39;订购RadioButtonList数据源的方法。 而且,当您想要随机订购时,您必须使用随机因素。

为此目的,你应该使用&#39; Random&#39; C#中的课程。

使用以下代码:(将数据源放在单选按钮列表中,而不是&#39; yourList&#39;)

Random ran = new Random();
RadioButtonList1.DataSource = yourList.OrderBy(x => ran.Next()).ToList();