Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在注册控件的同一页面中的单独用户控件中查找该控件_C#_Asp.net_Web User Controls - Fatal编程技术网

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

C# 如何在注册控件的同一页面中的单独用户控件中查找该控件,c#,asp.net,web-user-controls,C#,Asp.net,Web User Controls,我有两个用户控件,其中一个有一个文本框,我需要从同一页面中注册的第二个用户控件中检索它的值。我该怎么做?我知道下面这句话是错的。。但我记得是这样的 TextBox myText = (TextBox)FindControl["mycontrol"] as TextBox; 你的代码应该可以工作,除非你有太多的强制转换 TextBox myText = FindControl["mycontrol"] as TextBox; 它返回一个控件,该控件是的基类,因此只要找到的控件是一个文本框,此强

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

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

你的代码应该可以工作,除非你有太多的强制转换

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

它返回一个
控件
,该控件是的基类,因此只要找到的控件是一个文本框,此强制转换就应该工作

您拥有的代码应该工作,但强制转换过多除外

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

它返回一个
控件
,该控件是的基类,因此只要找到的控件是一个文本框,如果您需要从第一个控件访问第二个控件的值,则此转换应该可以工作

var textBox = this.Page.FindControl("SecondUserControl")
                  .FindControl("tbCardNumber") as TextBox;
其中SecondUserControl是页面中给定的id,tbCardNumber是为第二个控件中的文本框给定的id

如果您试图从页面访问文本框

var textBox = SecondUserControl1.FindControl("SecondUserControl")
                                .FindControl("tbCardNumber") as TextBox;
其中SecondUserControl1是控件的ID,您可以在代码隐藏中访问它

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

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

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

var textBox = this.Page.FindControl("SecondUserControl")
                  .FindControl("tbCardNumber") as TextBox;
其中SecondUserControl是页面中给定的id,tbCardNumber是为第二个控件中的文本框给定的id

如果您试图从页面访问文本框

var textBox = SecondUserControl1.FindControl("SecondUserControl")
                                .FindControl("tbCardNumber") as TextBox;
其中SecondUserControl1是控件的ID,您可以在代码隐藏中访问它

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

public string TextBoxValue
{
   get
    {
        return tbCardNumber.Text;
    }
}
但如果您通过另一个用户控件访问FindControl方法,则仍然需要该方法