首先我们需要明白一个道理,不管一个ASPX页面里面装了多少个ASCX,始终还是要生成一个页面的代码的,所以毫无疑问,我觉得在解决这个问题之前我就已经确定这个问题是可解的。直接贴代码了,首先是用户控件调用父页面的方法: //获得父页面 Page p = this .Parent.Page; Type pageType = p.GetType(); //父页面的方法名 MethodInfo mi = pageType.GetMethod("Loading" ); //执行 mi.Invoke(p, new object[] { "参数1","参数2" }); 用户控件与用户控件之间调用: //获得父页面 Page p = this .Parent.Page; //获得父页面的子控件 UserControl uc = p.FindControl("tj_ReceiptList2") as UserControl; Type pageType = uc.GetType(); //父类方法名 MethodInfo mi = pageType.GetMethod("Loading" ); //参数 mi.Invoke(uc, new object[] { "参数1", "参数2" }); 补充: 1.如果你要获得方法的返回值,Invoke方法返回的就是方法执行的返回值,类型是object,你转换一下就行了! 2.标题上还写了传值但是代码里面没有写?呵呵 我们能方法都能获得难道值还拿不到?再者途径很多,这里就不多嘴了:)注意: 被调用父页或其他用户控件的方法必须是public!
本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/586497,如需转载请自行联系原作者