【问题标题】:randomize display order for controls in asp.net随机化asp.net中控件的显示顺序
【发布时间】:2023-03-25 22:06:01
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net


    【解决方案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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2018-06-04
      相关资源
      最近更新 更多