В экземпляре объекта не задана ссылка на объект.- c # - Повторитель - DataSet - PullRequest
0 голосов
/ 03 января 2012

enter image description here

Привет, на рисунке выше показано исключение, которое я получаю каждый раз, когда фильтрую DataTable, сгенерированный из созданного мной объекта.

dtHistory = cBLRead.ds2.Tables ["ScheduleHistory"]; -> Это фактически заполняет dtHistory.

dtHistory.DefaultView.RowFilter = string.Format ("[ExamScheduleID] in ({0})", hdnID) -> Эта строка фильтрует строки на основе hdnID ...

rptHistory ужесозданный на моей стороне клиента ASP, и он останется пустым, пока пользователь не щелкнет определенную строку, расположенную в другой таблице данных ...

Я закрепил dtHistory.Rows.Count, чтобы показать, что dtHistory не является нулевым

Как мне решить эту проблему?

--- Вот что я хочу, чтобы это произошло ---

Каждый раз, когда пользователь щелкает конкретную строку экзамена в DataTable, модал, который содержитПовторитель, который показывает Перепланировать историю экзаменов, появится.

Модал работает нормально, но репитер, который я сделал, нет.Что, вероятно, является основной причиной этого исключения ..

Любой ответ будет оценен.Спасибо!

Ответы [ 2 ]

4 голосов
/ 03 января 2012

Исключение не означает, что dtHistory равно null, но rptHistory равно null.Затем, когда вы пытаетесь разыменовать его для доступа к свойству DataSource, которое он выбрасывает.

На снимке экрана метод ScheduleHistory кажется подозрительным:

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

Вы создаете экземпляр нового объекта ивызовите метод FilterHistory, который выдает исключение, поскольку предположительно член rptHistory все еще унифицирован.

0 голосов
/ 03 января 2012

Вы должны назначить источник данных следующим образом

rptHistory.DataSource=dtHistory.Tables[0];
...