我正在尝试创建一个 asp.net 自定义控件,该控件充当任何其他控件的托管容器,类似于现有的“面板”控件。基本上,我需要构建一个将一堆其他控件分组的 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>
我计划在我的控件中包含两个面板,一个用于标题,另一个用于正文,但正如您所看到的,关键问题是找到一种方法将标记中定义的子控件“转移”到body 面板,而不是默认的父容器。我觉得这可能是一些如何简单地覆盖(操作)控件属性,但不知道如何正确地这样做。
谁能给出一些关于如何实现这个“SuperContainer”控件的想法?
多谢,
埃里克