动态加载用户控件

时间:2012-08-18 16:43:59

标签: c# asp.net web-services rest

我正在尝试在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();
    }

希望很清楚。

1 个答案:

答案 0 :(得分:1)

您需要使用类似

的方法初始化控件
  

this.Load + = Page_Load;

请参阅这篇文章,它解释了为实现这一目标需要做些什么。请务必阅读说明部分; “ 提醒一句: http://weblogs.asp.net/srkirkland/archive/2007/11/05/dynamically-render-a-web-user-control.aspx 这篇相关的帖子也可以提供帮助: Page_Load not firing in UserControl