我一直在搜索这个问题几个小时但是,要么我在构建谷歌查询方面非常糟糕,要么就此没有太多信息。
我正在尝试构建一个可以“包装”其中的其他用户控件的用户控件,与<asp:Panel>
完全相同。把它想象成一个美化的小组(实际上,这正是它的本质)。
理想情况下,我想创建这样的东西:
<muc:MyUserControl ID="parentControl" runat="server" etc>
<mouc:MyOtherUserControl ID="childControl" runat="server" etc>
</mouc>
</muc>
我正在尝试构建的是parentControl
用户控件,并使其“读取”内部的任何内容并以某种方式显示/格式化(实际上,只需将其置于其中一个面板中) )。
也许这不是正确的方法,所以请指出我正确的方向。
谢谢!
修改
渲染后,这将是理想的渲染html:
<div id="parentControl">
<div>
Stuff from parent (controls, html elements, etc)
</div>
<div class="childWrapper">
<div id="childControl1" class="childControl">
</div>
</div>
</div>
PS:我知道在用户控件的Controls()
集合中动态添加控件。我只是想尽量避免这样做,因为手动为我必须添加的所有控件构建视图状态可能是***的真正痛苦。
答案 0 :(得分:0)
发现它!
来源:here (SO)
我的最终代码(因为我使用的是vb.net):
<强> ParentControl.ascx.vb:强>
Public Class ParentControl
Inherits System.Web.UI.UserControl
<PersistenceMode(PersistenceMode.InnerProperty)> _
Public Property RightContent As PlaceHolder
Private Sub Page_Init(sender As Object, e As System.EventArgs) Handles Me.Init
phRightContent.Controls.Add(Me.RightContent)
End Sub
End Class
<强> ParentControl.ascx:强>
<asp:UpdatePanel ID="UpdatePanel" runat="server">
<div id="LeftContent" class="LeftContent">
PARENT STUFF HERE
</div>
<asp:PlaceHolder ID="phRightContent" runat="server">
</asp:PlaceHolder>
</asp:UpdatePanel>
<强> WebForm.ascx:强>
<pc:ParentControl ID="ParentControl" runat="server" >
<RightContent>
<cc:ChildControl ID="ChildControl" runat="server" />
</RightContent>
</pc:ParentControl>