2012-06-15 5 views
2

Я хочу сгенерировать отчет rdlc, вручную заполняя значения в набор данных, потому что я отправляю дату в качестве ввода запроса. Я использую следующий код, чтобы сделать этоОтчет RDLC продолжает загружаться без показов данных

//my list get populated with the relevant records according to its date and I'm using the tableadapter of my dataset to do that 

List<DailySalesEntity> list = DailySalesHandler.GetSalesByDate(dateTimePicker1.Value); 
      reportViewer1.LocalReport.DataSources.Clear(); 
      Microsoft.Reporting.WinForms.ReportDataSource report = new Microsoft.Reporting.WinForms.ReportDataSource("DataSet_Dailysales", list); 
      reportViewer1.LocalReport.DataSources.Add(report); 
      reportViewer1.LocalReport.Refresh(); 

. Я использую tablix для отображения своих данных с помощью набора данных. Я установил правильный отчет для средства просмотра отчетов. У меня нет никаких исключений. Но отчет продолжает загружаться и не показывает отчет. Что я делаю неправильно.

Как я могу заполнить набор данных, передав параметр запросу и используя результирующий набор данных в отчете?

ответ

8

У меня была эта проблема и она была решена. Знак загрузки постоянно показывался и никогда не исчезал. В моем случае проблема заключалась в том, что я не обрабатывал значение IsPostBack. LocalReport.Refresh() генерирует обратную передачу, и если не обрабатывается, он будет продолжать публикацию и публикацию.

Это была моя проблема. По ограждающих Refrеsh страница продолжала делать постбэков

protected void Page_Load(object sender, EventArgs e) 
{ 
    // Report data source code... 
    myReport.LocalReport.Refresh(); 
} 

РЕШЕНИЕ:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
     // Report data source code... 
     myReport.LocalReport.Refresh(); 
    } 
} 

Итак, убедитесь, что вы обращаетесь к PostBack и не получить бесконечный цикл.

Смежные вопросы