ASP.NET:逻辑上划分用户控件的渲染

时间:2009-10-27 17:48:11

标签: asp.net user-controls

我希望有一个用户控件,它将呈现的HTML在逻辑上划分为多个部分。我想要一个aspx页面来动态加载这个用户控件,它将每个部分放在aspx页面的特定点上。这可能吗?

2 个答案:

答案 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)

假设您要渲染的部分不是连续的,不是。您可以选择将控件分成每个部分的单独控件,或者创建一个具有方法/属性的类,这些方法/属性分别返回每个部分的代码或控件列表。