我试图在加载后将我创建的用户控件动态添加到aspx页面。 我尝试向使用RenderControl函数的处理程序发送ajax请求并发送回控件的html。我使用javascript将它附加到DOM。
问题是某些控件必须通过它们的Page_Load函数,并且在使用RenderControl函数时不会发生。
有谁知道我该怎么做?
答案 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();
希望这会有所帮助!