我希望有一个用户控件,它将呈现的HTML在逻辑上划分为多个部分。我想要一个aspx页面来动态加载这个用户控件,它将每个部分放在aspx页面的特定点上。这可能吗?
答案 0 :(得分:2)
当然有可能。让你的用户控制像这样:
<asp:PlaceHolder runat="server" id="section1">
content
</asp:Placeholder>
<asp:PlaceHolder runat="server" id="section2">
content
</asp:Placeholder>
<asp:PlaceHolder runat="server" id="section3">
content
</asp:Placeholder>
和后面的代码添加3个属性,如:
public Control Section1
{
get{return section1;}
}
public Control Section2
{
get{return section2;}
}
public Control Section3
{
get{return section3;}
}
然后,在您的aspx中,您将有3个占位符代表您希望用户控件的各个部分去的3个位置。 aspx page_load方法中的代码如下所示:
MyUsercontrol c = LoadControl("MyUsercontrol.ascx") as MyUsercontrol;
placeholder1.Controls.Add(c.Section1);
placeholder2.Controls.Add(c.Section2);
placeholder3.Controls.Add(c.Section3);
答案 1 :(得分:1)
假设您要渲染的部分不是连续的,不是。您可以选择将控件分成每个部分的单独控件,或者创建一个具有方法/属性的类,这些方法/属性分别返回每个部分的代码或控件列表。