0

我正在尝试在 Web 服务中加载用户控件,但它不执行 Load_Page()。

我尝试使用:

HttpContext.Current.Server.Execute(page, text, false);

但它返回一个 NullException。这是我的代码:

public string Controle(string url)
    {
        Page page = new Page();
        UserControl userControl = (UserControl)page.LoadControl(url);
        //userControl.EnableViewState = false;
        HtmlForm form = new HtmlForm();
        form.Controls.Add(userControl);
        page.Controls.Add(form);
        StringWriter text = new StringWriter();
        HtmlTextWriter htmltext = new HtmlTextWriter(text);
        userControl.RenderControl(htmltext);
        return text.ToString();
    }

希望很清楚。

4

1 回答 1

1

您需要使用执行类似操作的方法初始化控件

this.Load += Page_Load;

请参阅这篇文章,它准确地解释了实现这一目标需要做什么。请务必阅读说明部分;”一个警告:http://weblogs.asp.net/srkirkland/archive/2007/11/05/dynamically-render-a-web-user-control.aspx 这个相关的帖子也将能够提供帮助: Page_Load 未在 UserControl 中触发

于 2012-08-18T17:12:21.157 回答