バックグラウンド:
その中に多数のユーザーコントロールがある ASP.NET ページがあります。興味深い 2 つのユーザー コントロールがあります。以前に選択したレコードに応じて、それらのいずれかを表示するか、どちらも表示しない必要があります。
ユーザー コントロールでは、FormView にあるいくつかのコントロールのプロパティを設定する必要があります。したがって、ユーザー コントロールのコード ビハインドには、次のような多くのプロパティがあります。
Private ReadOnly Property phSectionReports() As PlaceHolder
Get
Return fvConfirmationReport.FindControl("phSectionReports")
End Get
End Property
問題:
このプロパティに問題があります。Nothing/Null を返すこともあれば、「値を null にすることはできません。パラメータ名: コンテナ」というメッセージとともに NullArgumentException をスローすることもあります。例外は、fvConfirmationReport 変数を参照しようとした場合に発生します。fvConfirmationReport は、ページ自体の FormView の ID です。
それで、私は本当に探しているものを探しています。何かアイデアがあれば、どのような条件(ページサイクルの段階など)がこれにつながる可能性がありますか?
スタック トレースの例を以下に示します。
ASP.NET 3.5 SP1、VB.NET
ありがとう、
スタックトレース:
at System.Web.UI.DataBinder.GetPropertyValue(Object container, String propName)
at System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding)
at System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data)
at System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data)
at System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data)
at System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback)
at System.Web.UI.WebControls.DataBoundControl.PerformSelect()
at System.Web.UI.WebControls.BaseDataBoundControl.DataBind()
at System.Web.UI.WebControls.GridView.DataBind()
at System.Web.UI.Control.DataBindChildren()
at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding)
...snip...
at System.Web.UI.Control.DataBind()
at System.Web.UI.Control.DataBindChildren()
at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding)
at System.Web.UI.WebControls.FormView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding)
at System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data)
at System.Web.UI.WebControls.FormView.PerformDataBinding(IEnumerable data)
at System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data)
at System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback)
at System.Web.UI.WebControls.DataBoundControl.PerformSelect()
at System.Web.UI.WebControls.BaseDataBoundControl.DataBind()
at System.Web.UI.WebControls.FormView.DataBind()
at System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound()
at System.Web.UI.WebControls.FormView.EnsureDataBound()
at System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls()
at System.Web.UI.Control.EnsureChildControls()
at System.Web.UI.Control.FindControl(String id, Int32 pathOffset)
at System.Web.UI.Control.FindControl(String id)
at App_UserControls_xxx_ucConfirmationForm.get_phSectionReports() in ucConfirmationForm.ascx.vb:line 343
at App_UserControls_xxx_ucConfirmationForm.Page_Load(Object sender, EventArgs e) in ucConfirmationForm.ascx.vb:line 412
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
...snip...
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)