重新排序asp.net页面上的控件

时间:2013-01-22 00:55:58

标签: c# asp.net controls servercontrols

是否可以重新排序静态放在页面上的HtmlGenericControls?例如,我有一个菜单,每个部分都有一个容器元素。我想重新排列各部分的位置。

<!-- hard coded in master page frontend -->

    <!-- In Masterpage frontend -->
    <div runat="server" id="menuItem1">    
    </div>

    <div runat="server" id="menuItem2">    
    </div>

    <div runat="server" id="menuItem3">    
    </div>

有没有办法重新排序前三个控件的显示......

我知道这很奇怪,所以请尽量专注于这个问题

1 个答案:

答案 0 :(得分:3)

您可以获取对父控件的引用,并按所需顺序重新添加控件:

var parent = menuItem1.Parent;
parent.Controls.Add(menuItem2);
parent.Controls.Add(menuItem1);
parent.Controls.Add(menuItem3);

在此示例中,divs将重新排序为menuItem2menuItem1menuItem3。请注意,如果同一容器中已存在其他控件,则还会将它们移动到最后。如果您想要更好地控制展示位置,可以使用.Controls.AddAt添加指定的索引。