ASP.NET使用代码隐藏渲染usercontrols

时间:2013-05-15 08:12:37

标签: asp.net rendering webusercontrol

我想动态呈现用户控件,但我的代码无法按预期工作。后面的代码不会被执行。这是我的渲染代码:

Dim ucControl As UserControl = LoadControl(pControl.VirtualPath & "/" & Control & ".ascx")

Dim ucSB As New StringBuilder
Dim ucSW As New StringWriter(ucSB)
Dim ucHTML As New HtmlTextWriter(ucSW)

ucControl.RenderControl(ucHTML)

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

渲染UserContorl时,不会调用正常的生命周期事件。这种行为是设计使然。

您可以将UserControl转换为您的类型并显式调用方法:

Dim ucControl As MyUserControl = Ctype(LoadControl(pControl.VirtualPath & "/" & Control & ".ascx"), MyUserControl)

ucControl.Page_Load(me, EventArgs.Empty)

答案 1 :(得分:0)

另一种选择是在页面生命周期中尽早将动态加载的控件添加到页面中,以便调用事件。