在服务器端的页面内重新定位控件

时间:2014-02-12 22:46:04

标签: asp.net webforms

在我的页面上,我有几个控件。我需要根据某些条件更改控件在页面上显示的顺序。有没有办法将控件“剪切并粘贴”到aspx中的不同位置?我想在呈现页面之前在服务器端发生这种情况。

这是一个遗留应用程序,布局是基于表的,所以不希望在客户端上进行重新定位,更不用说等待页面完全加载然后进行重新定位很可能会导致用户看到控制重新定位。

谢谢, --ed

1 个答案:

答案 0 :(得分:1)

您可以使用目标控件的子Add集合的Controls方法来移动源元素。例如,您有以下表格

    <asp:Table ID="tbl" runat="server">
        <asp:TableRow>
            <asp:TableCell ID="Cell1">
                <asp:Label runat="server" ID="lbl" Text="Data 1"></asp:Label>
            </asp:TableCell>
        </asp:TableRow>
        <asp:TableRow>
            <asp:TableCell ID="Cell2" >
                <asp:Label runat="server" ID="lbl2" Text="Data 2"></asp:Label>
            </asp:TableCell>
        </asp:TableRow>
    </asp:Table>

如果要将标签“lbl”从单元格“Cell1”移动到单元格“Cell2”,可以在服务器端代码中执行此操作:

Cell2.Controls.Add(lbl)