对象引用未设置为对象的实例。-c#-中继器-数据集

对象引用未设置为对象的实例。-c#-中继器-数据集,c#,object,reference,null,dataset,C#,Object,Reference,Null,Dataset,您好,上图显示了我每次过滤从我创建的对象生成的DataTable时得到的异常 dtHistory=cBLRead.ds2.Tables[“ScheduleHistory”];-->这实际上填充了dtHistory dtHistory.DefaultView.RowFilter=string.Format({0})中的[ExamScheduleID],hdnID)-->此行根据hdnID筛选行 rptHistory已经在我的ASP客户端中创建,在用户单击另一个DataTable中的特定行之前,它将

您好,上图显示了我每次过滤从我创建的对象生成的DataTable时得到的异常

dtHistory=cBLRead.ds2.Tables[“ScheduleHistory”];-->这实际上填充了dtHistory

dtHistory.DefaultView.RowFilter=string.Format({0})中的[ExamScheduleID],hdnID)-->此行根据hdnID筛选行

rptHistory已经在我的ASP客户端中创建,在用户单击另一个DataTable中的特定行之前,它将保持为空

我固定了dtHistory.Rows.Count以显示dtHistory不是null

我将如何解决这个问题

---这就是我想要发生的事情---

每次用户单击DataTable中的某一行检查时,都会弹出一个模式,其中包含一个中继器,显示检查的重新安排历史

模态工作正常,但我做的中继器不工作。这一异常的主要原因可能是什么


如有任何答复,将不胜感激。谢谢

您应该像这样分配数据源

rptHistory.DataSource=dtHistory.Tables[0];

您应该像这样分配数据源

rptHistory.DataSource=dtHistory.Tables[0];

例外情况并不意味着
dtHistory
null
,而是
rptHistory
null
。然后,当您试图取消对它的引用以访问它抛出的
数据源
属性时

在屏幕截图中,
ScheduleHistory
方法似乎可疑:

ClaretExamSchedule callMethod = new ClaretExamSchedule();
callMethod.FilterHistory(hdnId);

您实例化一个新对象并调用
FilterHistory
方法,该方法引发异常,因为
rptHistory
成员可能仍然是单元化的。

异常并不意味着
dtHistory
null
而是
rptHistory
null
。然后,当您试图取消对它的引用以访问它抛出的
数据源
属性时

在屏幕截图中,
ScheduleHistory
方法似乎可疑:

ClaretExamSchedule callMethod = new ClaretExamSchedule();
callMethod.FilterHistory(hdnId);

您实例化一个新对象并调用引发异常的
FilterHistory
方法,因为
rptHistory
成员可能仍然是单元化的。

您确定此时rptHistory不是空的吗?实际上,我还在pageLoad()期间尝试填充rptHistory,只是想知道它是否接受数据。。。而且效果很好。。但是,当我再次单击该行时,仍然会出现类似的错误..你确定rptHistory在那一点上不是空的吗?实际上,我还在pageLoad()期间尝试填充rptHistory,只是想知道它是否接受数据。。。而且效果很好。。但是,当我再次单击该行时,仍然会出现类似的错误。实际上,我还在pageLoad()期间尝试填充rptHistory,只是为了知道它是否接受数据。。。而且效果很好。。但同样,当我点击这一行时,我仍然会遇到类似的错误。你能给出一些方法来解决这个问题吗?嗯…你是对的,我创建了一个对象调用方法,因为每次用户点击这一行,我都使用ajax调用服务器端方法。。。我必须使用[System.Web.Services.WebMethod]公共静态字符串ScheduleHistory(string hdnID)调用另一个非静态方法才能填充中继器…实际上,我还在pageLoad()期间尝试填充rptHistory,只是为了知道它是否接受数据。。。而且效果很好。。但同样,当我点击这一行时,我仍然会遇到类似的错误。你能给出一些方法来解决这个问题吗?嗯…你是对的,我创建了一个对象调用方法,因为每次用户点击这一行,我都使用ajax调用服务器端方法。。。我必须使用[System.Web.Services.WebMethod]公共静态字符串ScheduleHistory(string hdnID)调用另一个非静态方法才能填充中继器。。。