我正在尝试创建一个asp.net自定义控件,作为任何其他控件的托管容器,类似于现有的“Panel”控件。基本上,我需要构建一个Web控件,将一组其他控件组合在一起。它将包含标题和正文窗格,类似于桌面应用程序中的普通窗口。标题将包含一些简单的文本和一些JavaScript驱动的代码,用于显示/隐藏正文窗格。正文窗格只容纳任意数量的其他控件。
+------------------------------------------------------+
| User Details Show/Hide |
+------------------------------------------------------+
| Name: [Eric ] |
| Address: [Some where] |
| Date of Birth: [01/01/1980] |
| |
| (any other fields goes on) |
| |
| |
+------------------------------------------------------+
理想情况下,我想创建一个将整个事物打包在一起的控件,因此在设计时我可以使用以下标记。
<myCtl:SuperContainer runat=”server” Title=”User Details”>
<asp:label id=”lblName” runat=”server” text=”Name:”/>
<asp:textbox id=”txtName” runat=”server”/>
<asp:label id=”lblDOB” runat=”server” text=”Date of Birth:”/>
<asp:textbox id=”txtDOB” runat=”server”/>
(…other controls definition…)
</myCtl:SuperContainer>
我打算在我的控件中包含两个面板,一个用于标题,另一个用于正文,但正如您所看到的,关键问题是找到一种方法来“转移”在其中定义的子控件。标记到主体面板,而不是默认的父容器。我觉得可以简单地覆盖(操纵)控件属性,但不知道如何正确地执行此操作。
任何人都可以对如何实现这个'SuperContainer'控件有所了解吗?
非常感谢,
Eric