protected void btnPesquisar_Click(object sender, EventArgs e) { using (var relP = new RelatorioPrograma()) { var id = string.IsNullOrEmpty(txtPrograma.Text) ? (int?)null : int.Parse(txtPrograma.Text); var idCapacitacao = string.IsNullOrWhiteSpace(cbxOfertas.SelectedValue) ? (int?)null : int.Parse(cbxOfertas.SelectedValue); var idTurmaCapacitacao = string.IsNullOrWhiteSpace(cbxTurmas.SelectedValue) ? (int?)null : int.Parse(cbxTurmas.SelectedValue); var idModulos = string.IsNullOrWhiteSpace(cbxModulos.SelectedValue) ? (int?)null : int.Parse(cbxModulos.SelectedValue); var lstResult = relP.ConsultarProgramas(id, idCapacitacao, idTurmaCapacitacao, idModulos); if (lstResult != null && lstResult.Rows.Count > 0) { foreach (DataColumn item in lstResult.Columns) { item.Caption = (from ListItem i in _lsItens where i.Value == item.ColumnName select i.Text).FirstOrDefault() ?? item.Caption; } // Converter os resultados do DataTable em DTO para o totalizador ficar feliz da vida. var resultadoConvertido = WebFormHelper.GetDictionaryFromDataTable(lstResult).Select(resultado => new DTORelatorioPrograma { Cpf = resultado["Cpf"].ToString(), UF = resultado["UF"].ToString(), StatusMatricula = resultado["StatusMatricula"].ToString() }).ToList(); // Converter os resultados em dados totalizadores. var totalizadores = new List <DTOTotalizador> { TotalizadorUtil.GetTotalizador(resultadoConvertido, "Total da quantidade de alunos", "Cpf", enumTotalizacaoRelatorio.ContarDistintos, false), TotalizadorUtil.GetTotalizador(resultadoConvertido, "Total da quantidade por status", "StatusMatricula", enumTotalizacaoRelatorio.Contar), TotalizadorUtil.GetTotalizador(resultadoConvertido, "Total da quantidade de alunos UF", "UF", enumTotalizacaoRelatorio.ContarDistintos) }; ucTotalizadorRelatorio.PreencherTabela(totalizadores); Session.Add("dsRelatorio", lstResult); dgRelatorio.DataSource = lstResult; dgRelatorio.DataBind(); componenteGeracaoRelatorio.Visible = true; ucFormatoSaidaRelatorio.Visible = true; btnPesquisar.CssClass = "btn btn-default mostrarload"; Filtros.CssClass = "panel-collapse collapse"; } else { ucTotalizadorRelatorio.LimparTotalizadores(); componenteGeracaoRelatorio.Visible = false; ucFormatoSaidaRelatorio.Visible = false; } WebFormHelper.ValidarVisibilidadeCamposGrid(dgRelatorio, chkListaCamposVisiveis.Items); } }