C# aspx页面动态加载ascx用户控件

本文介绍了一种在ASP.NET中通过代码动态加载及实例化用户控件的方法,并展示了如何调用这些控件的方法来更新控件内容。具体实现包括字符串分割获取控件名称、使用Page.LoadControl加载.ascx文件、获取控件类型并调用其公开方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public partial class WebUserControl : System.Web.UI.UserControl
{
public void TestMethod(string strID)
{
        this.TextBox1.Text += " WebUserControl:" + strID;

}


public partial class WebUserControl2 : System.Web.UI.UserControl
{
    public void TestMethod(string strID)
{        this.TextBox1.Text += " WebUserControl2:" + strID;
  }


public partial class Default1 : System.Web.UI.Page
{
bool isShow = true;
string strWebUserControls = "WebUserControl,WebUserControl2";
protected void Page_Load(object sender, EventArgs e)
{
if (isShow)
{
            string[] strUCs = strWebUserControls.Split(",");
            for (int i = 0; i < strUCs.Length; i++)
            {
                string strUCName = strUCs[i].ToString();
                Control a = Page.LoadControl(strUCName+".ascx");
                a.ID = strUCName;
                this.Panel1.Controls.Add(a);
            }           
        } 
    }

  
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (isShow)
        {
            string[] strUCs = strWebUserControls.Split(",");
            for (int i = 0; i < strUCs.Length; i++)
            {
                string strUCName = strUCs[i].ToString();
                Type tc = this.Panel1.FindControl(strUCName).GetType();
                Control uc = this.Panel1.FindControl(strUCName);
                ////object o = System.Activator.CreateInstance(uc.GetType());
                System.Reflection.MethodInfo m = tc.GetMethod("TestMethod");
                object[] bjParas = new object[1];
                objParas[0] = "1";
                m.Invoke(uc, objParas);
                ////m.Invoke(a, null);
            }
        }
     }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值