C# 类在某些方法中可用,但在其他方法中不可用
下面是隐藏的代码:C# 类在某些方法中可用,但在其他方法中不可用,c#,asp.net,nullreferenceexception,C#,Asp.net,Nullreferenceexception,下面是隐藏的代码: public partial class ViewDetailedActivity : System.Web.UI.Page { public AstraFunctions vdaa = new AstraFunctions(); public AstraFunctions vdaabdt = new AstraFunctions(); public AstraFunctions vdaabdc = new AstraFunctions();
public partial class ViewDetailedActivity : System.Web.UI.Page
{
public AstraFunctions vdaa = new AstraFunctions();
public AstraFunctions vdaabdt = new AstraFunctions();
public AstraFunctions vdaabdc = new AstraFunctions();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
AstraHdr.Set_Title("View Detailed ASTRA Activity");
SetVDAAPanelView(); // <---- THIS WORKS!
}
}
/*.............*/
protected void SetVDAAPanelView()
{
try
{
//THIS ALL WORKS
string sSqlCommand = "Astra_ReportActivity";
SqlParameter[] SQLParameters = null;
vdaa.SetUp(gvViewDetailedASTRAActivity, sSqlCommand, SQLParameters);
vdaa.SetDataSet();
Response.Write(vdaa.gv.ID.ToString();
pnlViewDetailedASTRAActivity.Visible = true;
pnlViewDetailedASTRAActivityByDate.Visible = false;
pnlViewDetailedASTRAActivityByDODACC.Visible = false;
}
catch (Exception ex)
{
Response.Write("Error in SetVDAAPanelView(): " + ex);
}
}
/*..............*/
protected void gvViewDetailedASTRAActivity_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
try
{
vdaa.gv.ID.ToString(); // DOES NOT work!
//vdaa.gv_PageIndexChanging(sender, e); // this DOES NOT work!
}
catch (Exception ex)
{
Response.Write("Error in gvViewUnprocessedReceipts_PageIndexChanging(): " + ex);
}
}
}
public分部类ViewDetailed活动:System.Web.UI.Page
{
公共函数vdaa=新函数();
公共函数vdaabdt=新函数();
公共函数vdaabdc=新函数();
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
AstraHdr.Set_标题(“查看详细的ASTRA活动”);
SetVDAAPanelView();//尝试在会话中存储对象
public AstraFunctions vdaa;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
vdaa = Session["vdaa"] != null ?
(AstraFunctions)Session["vdaa"] : new AstraFunctions();
...//do somthing with vdaa
Session["vdaa"] = vdaa;
}
}
protected void gvViewDetailedASTRAActivity_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
try
{
AstraFunctions vdaa = (AstraFunctions)Session["vdaa"]
vdaa.gv.ID.ToString();
vdaa.gv_PageIndexChanging(sender, e);
}
catch (Exception ex)
{
Response.Write("Error in gvViewUnprocessedReceipts_PageIndexChanging(): " + ex);
}
调试时,vdaa.gv.ID是null?还是有效值?几乎所有NullReferenceException
的情况都是相同的。请参阅“”,以获得一些提示。答案是在这方面稍有变化。结果表明,不是类本身为null,而是类内部的所有内容-由于我在哪里/如何执行类“init”将其存储在会话中解决了我的问题。