Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net中随机化控件的显示顺序_C#_Asp.net - Fatal编程技术网

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

C# 在asp.net中随机化控件的显示顺序,c#,asp.net,C#,Asp.net,我想知道如何将某些控件的显示顺序随机化。 基本上,我有5个超链接,我希望在每次加载时,它们的显示顺序是随机的。 我用哪种方法可以做到这一点? 谢谢,Laziale假设所有5个链接都位于名为“Pnlinks”的asp面板中,并且这些链接是面板中唯一的控件: <asp:Panel ID="pnlLinks" runat="server"> <asp:HyperLink ID="HyperLink0" runat="server" Text="test1" /

我想知道如何将某些控件的显示顺序随机化。 基本上,我有5个超链接,我希望在每次加载时,它们的显示顺序是随机的。 我用哪种方法可以做到这一点?
谢谢,Laziale

假设所有5个链接都位于名为“Pnlinks”的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);
    }
}
受保护的无效页面加载(对象发送方,事件参数e)
{
var ctrls=新列表();
foreach(Pnlinks.控件中的控件c)
{
加上(c);
}
Random rand=新的Random();
//随机化并放回
foreach(在ctrls.OrderBy(c=>rand.Next())中控制c)
{
Pnlinks.控件。移除(c);
pnlLinks.Controls.Add(c);
}
}