我有两个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
方法时,我收到了:
对象引用未设置为对象的实例。
如何解决这个问题?
答案 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");