c# - 我如何使用 asp.net 从另一个用户控件调用用户控件的方法?

标签 c# asp.net user-controls

我有两个用户控件:UserControl1UserControl2,这些控件是在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/

相关文章:

c# - 每x秒同时启动几个功能吗?

c# - 如何将多个 Linq 表达式的结果组合成一个表达式?

c# - 如何将项目添加到 Dictionary<string, Dictionary<string, object>>?

c# - 从列表中获取值

c# - FileUpload.HasFile 错误地返回 false

c# - 将用户控件添加到 asp.net 页面

C# Form UserControl OnClick 事件

wpf - 有人有一个带有单个 ContentPresenter 的 UserControl 的简单示例吗?

asp.net - 如何转换上传的视频并从此文件中获取屏幕截图?

c# - 在 C# 中通过字符串获取成员?