关于用户控件中调用不同页面的方法

ASP.NET用户控件间方法调用
本文介绍如何在ASP.NET中实现用户控件之间的方法调用,包括无参和带参方法的调用方式,并通过反射技术来实现跨控件的方法交互。

一直困扰我好久的 问题今天终于得到了答案

1:用户控件之间方法的调用

准备工作:

先放两个用户控件one 和two 到页面Default.aspx 上

在one中加上一个textbox and button 在two中写一方法

如下:

//简单的返回值 public string chen() { return "woshicc"; }

在one中调用事件

如下:

/// <summary> /// 点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button1_Click(object sender, EventArgs e) { Type t = Parent.Page.FindControl("one1").GetType();//得到类型是usercontrol System.Web.UI.UserControl uc =(System.Web.UI.UserControl)Parent.Page.FindControl("one1"); System.Reflection.MethodInfo mi = t.GetMethod("chen"); string returnvalue= mi.Invoke(uc, new object[0]).ToString(); this.TextBox1.Text = returnvalue; }

这是用到反射的技术找到页面中[chen]这个方法 再用反射调用这个方法就行了....

当然如果可以调用用户控件中的方法的话 也可以调用到一般页面上的方法

哈哈 试试看:

同样的方法在Default .cs文件中写上一个需要传递参数的方法;

如下:

//这个方法比上一个方法不同这个方法要传递参数 public string Changer(int p, string name) { return "我的名字叫" + name + "我的年龄是" + p; }

要调用这个方法就必须知道怎样用反射调用有参数的方法;

先卖个关子

在调用的one页面上写上这样的代码

如下: protected void Button1_Click(object sender, EventArgs e) { //调用页面中的一个方法 Type t = Parent.Page.GetType(); System.Web.UI.Page ct = (System.Web.UI.Page)Parent.Page; //System.Reflection.MethodInfo mi = t.GetMethod("chen"); System.Reflection.MethodInfo mi = t.GetMethod("Changer"); object [] o=new object[2]; o[0] = 21; o[1] = "张三"; string returnvalue = mi.Invoke(ct, o).ToString(); this.TextBox1.Text = returnvalue; }

在代码 object [] o=new object[2];
o[0] = 21;
o[1] = "张三";
string returnvalue = mi.Invoke(ct, o).ToString(); 就是调用有参数的反射的方法.....

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值