我正在使用从Javascript调用的ScriptMethod
。在此方法中,我尝试使用LoadControl
以编程方式获取控件。
我正在将此控件添加到当前IHttpHandler
(HttpContext.Current.Handler
),这是Page
的一个实例,其中还包含我的(静态)ScriptMethod
。对于这个实例,我添加了使用LoadControl
加载的控件,但是我的控件的Init
事件永远不会被引发。
是否可以在LoadControl
中使用ScriptMethod
,同时遵守网页生命周期?
答案 0 :(得分:0)
您需要execute the page包含控件才能触发相关事件:
static void RenderControlTo(string pathToControl, TextWriter writer)
{
var page = new Page();
var control = page.LoadControl(pathToControl);
page.Controls.Add(control);
HttpContext.Current.Server.Execute(page, writer, false);
}