随机化asp.net中控件的显示顺序

时间:2011-02-23 15:27:59

标签: c# asp.net

我想知道如何随机化显示某些控件的顺序。 基本上,我有5个超链接,我想在每个加载它们显示的顺序是随机的。 我能以哪种方式实现这一目标? 谢谢,Laziale

1 个答案:

答案 0 :(得分:1)

假设所有5个链接都位于名为“pnlLinks”的asp面板中,并且链接是面板中唯一的控件:

    <asp:Panel ID="pnlLinks" runat="server">
        <asp:HyperLink ID="HyperLink0" runat="server" Text="test1" />
        <asp:HyperLink ID="HyperLink1" runat="server" Text="test2" />
        <asp:HyperLink ID="HyperLink2" runat="server" Text="test3" />
        <asp:HyperLink ID="HyperLink3" runat="server" Text="test4" />
        <asp:HyperLink ID="HyperLink4" runat="server" Text="test5" />
    </asp:Panel>

使用这样的代码随机化他们的顺序:

protected void Page_Load(object sender, EventArgs e)
{
    var ctrls = new List<Control>();

    foreach (Control c in pnlLinks.Controls)
    {
        ctrls.Add(c);
    }

    Random rand = new Random();
    //randomize and put back in
    foreach (Control c in ctrls.OrderBy(c => rand.Next()))
    {
        pnlLinks.Controls.Remove(c);
        pnlLinks.Controls.Add(c);
    }
}