zoukankan      html  css  js  c++  java
  • C# aspx页面动态加载ascx用户控件 及 利用反射调用其内方法

    //控件代码
    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(",".ToCharArray()[0]);
                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(",".ToCharArray()[0]);
                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[] objParas = new object[1];
                    objParas[0] = "1";
                    m.Invoke(uc, objParas);
                    ////m.Invoke(a, null);
                }
            }
         }
    }

  • 相关阅读:
    HTTP的POST提交的四种常见消息主体格式
    postman设置token等关联参数
    基于Appium的APP自动化测试基础--美团APP的实例
    Genymotion安装apk问题,不能部署Genymotion-ARM-Translation_v1.zip
    http://dl-ssl.google.com/android上不去解决方案
    算法中,什么是哈希值,哈希值怎么生成的,有什么用?
    理解Python中的__builtin__和__builtins__
    SQL语句中exists和in的区别
    Selenium_python自动化跨浏览器执行测试
    python assert断言函数
  • 原文地址:https://www.cnblogs.com/freeliver54/p/1298673.html
Copyright © 2011-2022 走看看