我正在使用Visual Studio 2017和.NET 4.7.1开发ASP.NET应用程序。我有一个名为ContentStatsViewer.ascx
的简单用户控件,该控件显示几个标签。要显示的值通过公共属性传递。
NumericContentStatsViewer.ascx
之类的其他控件包括ContentStatsViewer.ascx
的实例以及其他内容,例如:
<uc:ContentStatsViewer runat="server" ID="csvMain"></uc:ContentStatsViewer>
此控件还具有一些属性,这些属性设置为建立要显示的数据。其中一些属性委托回嵌入式ContentStatsViewer.ascx
的属性,例如:
public Data_Activities.ElementsRow Data_Element
{
get => this.csvMain.Data_Element;
set => this.csvMain.Data_Element = value;
}
最后,我通过动态加载来在常规网页上使用NumericContentStatsViewer.ascx
控件。例如:
var ncsv = new NumericContentStatsViewer();
paMain.Controls.Add(ncsv);
我正在Page_Load
事件处理程序上执行此操作,并且似乎工作正常。但是,一旦我尝试设置一个委派回嵌入式控件的属性,就会出现异常。例如,如果我执行以下操作:
ncsv.Data_Element = rElement;
...我在Data_Element
属性设置器上收到NullReferenceException,因为this.csvMain
为空。
我不明白为什么它为空。我尝试将其移至其他页面事件处理程序,例如Page_LoadComplete
或Page_PreRender
,但结果相同。
有什么想法吗?谢谢。