Ler em inglês

Compartilhar via


Configurando o ReportViewer para renderização assíncrona

Para configurar o ReportViewer o controle de servidor Web para processamento assíncrono, você deve definir o processamento e modos de processamento. O comportamento de renderização é especificado pelo AsyncRendering propriedade no controle e o comportamento de processamento é especificada pelo ProcessingMode propriedade. A combinação dessas duas propriedades define como suas páginas ASP.NET serão renderizado.

A tabela a seguir descreve o comportamento do ReportViewer controle para a renderização diferente e modos de processamento.

Configuração de propriedade

Modo de processamento local (classe LocalReport)

Modo de processamento remoto (classe ServerReport)

AsyncRendering = True

  • Usa IFRAME

  • Nenhuma postagem 1

  • Processamento síncrono

  • Usa IFRAME

  • Nenhuma postagem 1

  • Processamento assíncrono

AsyncRendering = False

  • In-line HTML

  • Postagem

  • Processamento síncrono

  • In-line HTML

  • Postagem

  • Processamento síncrono

Quando AsyncRendering é definida como True, postbacks ocorrerá se você assinar eventos de navegação em seu código, com exceção do evento de detalhamento. Esse evento lançará independentemente de inscrição de evento. Se a propriedade é definida como False, post faz ocorrerá se você se inscreveu para eventos ou não.

Modo assíncrono

Quando o AsyncRendering está definida a True, o ReportViewer processará o relatório em um IFRAME na página. Ao usar um IFRAME, o restante da página pode carregar sem serem bloqueadas pelo ReportViewer controle.

Ambos os modos de processamento local e remoto usam um IFRAME para renderizar o relatório. No entanto, há uma diferença na forma de que ReportViewer renderiza um indicador de progresso se ele estiver habilitado. Quando um relatório é processado localmente, o indicador de progresso para o relatório não pode ser renderizado até que todo o processamento seja concluído. Quando um relatório é processado remotamente, o indicador de progresso, se ele estiver habilitado, é exibido enquanto o relatório está sendo processado no servidor.

Considerações para XHTML e controle de servidor Web ReportViewer

Se você configurar o ReportViewer Web de controle de servidor para executar em modo assíncrono em um aplicativo que é escrito em XHTML, você deve seguir etapas específicas para exibir o ReportViewer controlar corretamente. Se o ReportViewer controle usa altura relativa (por exemplo, se a altura é especificada como uma porcentagem do espaço disponível), o controle recolhe uma altura de zero (0) pixels como resultado como quadros e marcas DIV renderizados em que contém tabelas em XHTML. Você pode evitar esse problema seguindo um destes procedimentos:

  • Definir explicitamente a altura a sobre o ReportViewer controle para um valor real em vez de uma porcentagem.

  • Adicione a seguinte configuração de estilo para a marca < head >: <style>html,body,form {height:100%}</style>. Forçando o HTML, body e marcas de formulário a altura máxima, o quadro usado no ReportViewer controle também aumentará a altura máxima, torná-lo visível na página.

  • Remova o doctype xhtml da página.

Modo síncrono

Quando o AsyncRendering está definida a False o ReportViewer processará o relatório como HTML no restante da página. Como o HTML é embutido, o restante da página será bloqueado enquanto o relatório é processado e renderizado.

Dica

Se um relatório contiver um mapa do documento e está sendo processado no modo síncrono, o mapa do documento não será exibido.

Consulte também

Referência

ReportViewer

Propriedades do ReportViewer

Conceitos

Configurações de Web.config para ReportViewer

Servidor Web do ReportViewer e Controles do Windows Forms

Configurando o ReportViewer para processamento local

Configurando o ReportViewer para processamento remoto