我们如何在aspx页面上运行时动态加载用户控件

时间:2011-04-16 10:59:31

标签: asp.net

  

可能重复:
  Create a usercontrol instance programmatically in ASP.NET

亲爱的朋友 我有用户控件,我点击按钮后加载用户控件是什么?

3 个答案:

答案 0 :(得分:2)

首先创建面板或任何服务器控件

<asp:Panel ID="plnExam" runat="server">
 </asp:Panel> 

然后在cs页面

之后
Control uc = this.LoadControl("~/UserControl/CollegesInExam.ascx");

plnExam.Controls.Add(uc);

答案 1 :(得分:0)

试试this。 (您正在寻找的谷歌短语是“动态加载用户控件”)

关键部分是 Control FeaturedProductUserControl = LoadControl("YourControl.ascx")

答案 2 :(得分:0)

这是为了防止你想通过Ajax加载UserControls。也许这很有用:

    public static string GetControlHtml(string controlLocation)
    {
        Page page = new Page();
        UserControl userControl = (UserControl)page.LoadControl(controlLocation);

        //Disabled ViewState- If required
        //userControl.EnableViewState = false;

        HtmlForm form = new HtmlForm();
        form.Controls.Add(userControl);
        page.Controls.Add(form);
        StringWriter textWriter = new StringWriter();
        HttpContext.Current.Server.Execute(page, textWriter, false);
        return CleanHtml(textWriter.ToString());
    }

controlLocation是来自UserControl的路径(例如“〜/ UserControls / NewUser.ascx”)。 此方法呈现UserControl并返回其HTML,以便通过Ajax加载到contaner(div)中。

相关问题