То, что вы делаете, выглядит в значительной степени правильно. Я делаю именно это (это VB):
rptViewer.LocalReport.ReportPath = <filepath>
rptViewer.LocalReport.DataSources.Clear()
rptViewer.LocalReport.DataSources.Add(New ReportDataSource("<data_source_name_in_report>", <linq_query_result>))
rptViewer.SetDisplayMode(DisplayMode.PrintLayout)
Единственный бит, который вам нужно проверить, - это то, что вы правильно сопоставляете имя источника данных в отчете. Вы можете проверить это, открыв отчет в текстовом редакторе и просмотрев элемент источников данных.
Другая вещь из памяти, и я не использовал это около года, так что я могу ошибаться, у меня возникло ощущение, что вам нужно позвонить либо rptViewer.Refresh()
, либо rptViewer.SetDisplayMode()
, чтобы заставить его отрендерить .
Загляните на этот веб-сайт для получения дополнительной информации об элементе управления ReportViewer:
http://www.gotreportviewer.com/