用户控制错误对象引用未设置为对象的实例?

时间:2015-07-11 10:49:13

标签: c# asp.net webforms

我有两个WebUserControl

1. UC_1.axcx
2. UC_2.ascx

我尝试从UC_2.ascx.cs访问UC_1.axcx.cs方法。下边是 UC_1.ascx.cs方法。

protected void Page_Load(object sender, EventArgs e)
{
    UC_2 objUC = new UC_2();
    objUC.assignName("123');
}

UC_2.ascx.cs

public string assignName(string nameParam)
{
  TextBox1.Text = nameParam;   //Here i am getting object null error.
  retrun "access UC_2 successfully.";
}

UC_2访问UC_1方法时,我收到了:

  

对象引用未设置为对象的实例。

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您需要在UC_2.ascx中注册UC_1.ascx,而不是实例化它。在UC_1.ascx

<%@ Register Src="~/UC_2.ascx" TagPrefix="uc1" TagName="UC_2" %>

<uc1:UC_2 runat="server" ID="UC_2" />

UC_1代码后面的代码Page_Load就像这样:

protected void Page_Load(object sender, EventArgs e)
{
    UC_2.assignName("123");
}

修改:要动态调用UC2方法而不在ascx中注册,请尝试以下操作:

var Uctrl = (UC_2)LoadControl("~/UC_2.ascx"); 
Controls.Add(Uctrl);
Uctrl.assignName("123");