我有两个usercontrol UC_1.ascx& Uc_2.ascx。
我尝试绑定来自UC_1的UC_2文本框值。
以下是我的代码:
System.Web.UI.UserControl UserControl1 = (System.Web.UI.UserControl)Page.FindControl("UC_2");
if (UserControl1 != null)
{
TextBox txt = UserControl1.FindControl("txtTest") as TextBox; //thwon object null reference error.
txt.Text = "test123123123213";
}
但是我在调用UserControl1
对象时遇到错误。
错误如:
对象引用未设置为对象的实例。
答案 0 :(得分:0)
1)您需要检查UserControl1
是否为空。
2)如果不是,请检查UserControl1.FindControl("txtTest") as TextBox
是否等于null。
除了表达式变量仅被计算一次之外,代码等效于以下表达式。
表达式为type ? (type)expression : (type)null
,问题出在您尝试投射的类型中。
答案 1 :(得分:-1)
替换
TextBox txt = UserControl1.FindControl("txtTest") as TextBox;
通过
if(UserControl1.FindControl("txtTest") != null)
{
TextBox txt = UserControl1.FindControl("txtTest") as TextBox;
txt.Text = "test123123123213";
}
FindControl无法找到txtText,请记住它只搜索容器的直接子节点。