我有两个用户控件:UserControl1
和UserControl2
,这些控件是在Page.aspx 中添加的。
用户控件 1
:
此用户控件包含此用户控件中隐藏文本框的方法。此方法称为“HideTextbox
”
用户控件2
:
我想从 UserControl2
调用方法“HideTextBox
”。
如何从 UserControl2
调用方法 HideTextBox
?
最佳答案
只有当两者都是用户控件或服务器控件,或者您正在从用户控件中寻找服务器控件时,这才有效。 (不是来自服务器控件,因为您无法获得对 asp.usercontrol_xx 程序集的引用)
首先获取对父页面的引用(通常这可以通过 this.Parent
完成。
接下来对父级执行递归 FindControl 以查找类型为 UserControl2
的控件。
示例代码:
//this for extension method
public static UserControl2 FindUserControl2Recursive(this Control root)
{
var uc2 = root as ASP.UserControls_UserControl2_ascx;
if (uc2 != null)
{
return uc2;
}
foreach (var control in root.Controls)
{
uc2 = control.FindUserControl2Recursive();
if (uc2 != null)
{
return uc2;
}
}
return null;
}
获得 Usercontrol2 引用后,您可以轻松调用公共(public)方法。
关于c# - 我如何使用 asp.net 从另一个用户控件调用用户控件的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14386572/