如何在注册控件的同一页面中的单独用户控件中查找控件

本文关键字:控件 单独 查找 用户 注册 一页 | 更新日期: 2023-09-27 18:30:00

我有两个用户控件,其中一个控件中有一个文本框,我需要从同一页面中注册的第二个用户控件中检索其值。我该怎么做?我知道下面这行写错了。。但我记得是这样的。

TextBox myText = (TextBox)FindControl["mycontrol"] as TextBox;

如何在注册控件的同一页面中的单独用户控件中查找控件

如果您需要从第一个控件访问第二个控件的值

var textBox = this.Page.FindControl("SecondUserControl")
                  .FindControl("tbCardNumber") as TextBox;

其中SecondUserControl是页面中给定的id,tbCardNumber为第二个控件中的TextBox给定的id

如果您尝试从页面访问TextBox

var textBox = SecondUserControl1.FindControl("SecondUserControl")
                                .FindControl("tbCardNumber") as TextBox;

其中SecondUserControl1是控件的ID,您可以在代码隐藏中访问它。

但是,您可以通过属性公开文本框的值

public string TextBoxValue
{
   get
    {
        return tbCardNumber.Text;
    }
}

但是,如果您通过另一个用户控制访问FindControl方法,您仍然需要它

您所拥有的代码应该可以工作,除非您有太多的转换

TextBox myText = FindControl["mycontrol"] as TextBox;

关于FindControl的MSDN文档,它返回一个Control,这是Textbox的基类,所以只要找到的控件是一个文本框

,这个转换就应该有效