用户自定义控件(UserControl)用法大全

1.动态加载用户控件,并利用反射机制给控件赋值

UserControl uc= (UserControl) LoadControl ("../myUserControl.ascx") ; 
Type myusertype = uc.GetType();

PropertyInfo  info1 = myusertype.GetProperty("subID");

info1.SetValue(uc , subID , null);

2.利用反射调用控件中的方法,并传值

UserControl uc = (UserControl)PlaceHolder1.Controls[0];
Type userType = uc.GetType();
MethodInfo m = userType.GetMethod("submit");
object[] objParas = new object[1];
objParas[0] = subjectID;
m.Invoke(uc, objParas);

3.在用户控件中触发主页面的事件(事件委托)

 ①首先,在一aspx页面中包含一用户控件(RaiseControl.ascx),该用户控件内含有一服务器端控件。

 ②在该用户控件的后台代码中声明事件委托、定义事件成员并添加一事件监视函数。代码如下:
      
       //声明事件委托
        public delegate void PageChangeEventHandler(string psDeliver);
       //定义事件
        public event PageChangeEventHandler MyPageChange;
       //监视事件
        protected void OnPageChange(string psStr)
        {
            if (MyPageChange != null)
           {
                MyPageChange(psStr);
           }
        }
  
 //在用户控件的按钮事件中,触发已经定义的MyPageChange事件。
        protected void btnRaise_Click(object sender, EventArgs e)
        {
             string _sStr = "你点击了用户控件中的按钮!";
             OnPageChange(_sStr);      
        }

 ③在其所在的页面中编写相应的处理函数并在页面的Page_Load中将该处理函数绑定到用户控件中定义的MyPageChange事件。
      
        protected void Page_Load(object sender, EventArgs e)
        {
           //利用+=进行事件委托绑定
             ctlRaiseControl.MyPageChange += this.DealwithReceived;
        }
       
        /** <summary>
        /// 为用户控件中MyPageChange事件定义的处理函数
         /// </summary>
        /// <param name="psReceive"></param>
        private void DealwithReceived(string psReceive)
        {
            lblReceive.Text = psReceive;
        }

 

 

转载于:https://www.cnblogs.com/shawker/archive/2011/01/10/1931793.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值