【问题标题】:How to add objects to a RadioButtonList based on random order ?如何根据随机顺序将对象添加到 RadioButtonList?
【发布时间】:2014-05-14 11:31:46
【问题描述】:

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

我的代码:

<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"))

【问题讨论】:

标签: c# asp.net random radiobuttonlist


【解决方案1】:

使用 random 类创建一个数字 qith 列表,范围 1 是开始,4 是单选按钮的表格编号。 用你的列表项创建另一个列表,然后循环遍历数字列表并将它们添加到索引中,因为该策略必须是一个整数,你必须从数字列表中减去一个

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]);
}

【讨论】:

    【解决方案2】:

    您必须使用“OrderBy”方法对 RadioButtonList 的数据源进行排序。 而且因为你想随机订购,你必须使用随机因素。

    为此,您应该在 C# 中使用“随机”类。

    使用此代码:(将您的数据源放置在单选按钮列表中,而不是“yourList”)

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

    【讨论】:

    • 我的列表叫做 RadioButtonList1
    • RadioButtonList1 是您要使用数据库中的一些数据填充它的控件。 'yourList' 是来自数据库的数据源。
    猜你喜欢
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    相关资源
    最近更新 更多