加载页面后添加用户控件

时间:2010-08-31 11:36:13

标签: asp.net

我试图在加载后将我创建的用户控件动态添加到aspx页面。 我尝试向使用RenderControl函数的处理程序发送ajax请求并发送回控件的html。我使用javascript将它附加到DOM。

问题是某些控件必须通过它们的Page_Load函数,并且在使用RenderControl函数时不会发生。

有谁知道我该怎么做?

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我认为你不能这样做。

您的控件不会通过其Page_Load,因为它们不会添加到任何控件中。你所做的只是渲染他们的HTML(使用RenderControl)并使用javascript加载它。没有Page_Load活动的地方。

我会以这种方式使用UpdatePanel:

<asp:UpdatePanel>
    <ContentTemplate>
        <asp:Panel ID="pnlDynamic" />
    </ContentTemplate>
</asp:UpdatePanel>

然后在代码后面添加动态控件到面板

pnlDynamic.Controls.Add(new YourControl());

答案 2 :(得分:0)

试试这个:

System.Web.UI.Page page = new System.Web.UI.Page();
CustomUserControl userControl = page.LoadControl("~/control.ascx") as CustomUserControl;
if (userControl == null)
{
//error
}

userControl.ArticleId = id;
//call any other properties or methods you need

page.Controls.Add(userControl);
System.IO.StringWriter sw = new System.IO.StringWriter();
HttpContext.Current.Server.Execute(page, sw, false);
responseString = sw.ToString();
希望这会有所帮助!