静态脚本方法中的LoadControl不遵守页面生命周期(未引发Init事件)
本文关键字:周期 事件 Init 生命 方法 脚本 LoadControl 不遵守 静态 | 更新日期: 2023-09-27 17:58:36
我使用的是从Javascript调用的ScriptMethod
。在这个方法中,我尝试使用LoadControl
以编程方式获得一个控件。
我将此控件添加到当前的IHttpHandler
(HttpContext.Current.Handler
),它是Page
的一个实例,也包含我的(静态)ScriptMethod
。在这个实例中,我添加了使用LoadControl
加载的控件,但是我的控件的Init
事件从未引发。
在遵守页面生命周期的同时,是否可以在ScriptMethod
中使用LoadControl
您需要执行包含控件的页面,以激发相关事件:
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);
}