TeRRaBR 0 Denunciar post Postado Maio 23, 2012 Galera, bom dia! Meu ListView está exibindo o cabeçalho independente se está vindo resultados ou não (Ignorando o EmptyDataTemplate). O mais engraçado é que tenho na mesma pagina dois ListView (ListView1 e ListView2), o ocorrido só acontece no ListView1. Alguém tem uma idéia do que seja? Já tentei "debugar" e ver se acho algum valor que ele possa estar trazendo e visualizei que está count = 1, mas não consigo visualizar o valor. <asp:ListView ID="ListView1" runat="server"> <EmptyDataTemplate><i>Nenhum Registro Encontrado</i></EmptyDataTemplate> <LayoutTemplate> <table class="tabela" border="0"> <tr class="cabecalho"> <th align="center"><asp:Label ID="TOTAL" runat="server">TOTAL</asp:Label></th> <th align="center"><asp:Label ID="ATIVOS" runat="server">ATIVOS</asp:Label></th> <th align="center"><asp:Label ID="INDICE" runat="server">INDICE</asp:Label></th> </tr> <tr id="itemPlaceholder" runat="server"></tr> </table> </LayoutTemplate> <ItemTemplate> <tr> <td align="center"><asp:Label runat="server" id="lblTOTAL"><%#Eval("TOTAL") %></asp:Label></td> <td align="center"><asp:Label runat="server" id="lblATIVOS"><%#Eval("TOTAL_ATIVOS")%></asp:Label></td> <td align="center"><asp:Label runat="server" id="lblINDICE"><%#(Eval("INDICE").ToString() != "")?Convert.ToDouble(Eval("INDICE")).ToString("N2")+"%": ""%></asp:Label></td> </tr> </ItemTemplate> </asp:ListView> </div> <div id="Tit_Detalhado"> <asp:Label ID="lbldet" Text="-" runat="server"></asp:Label> <asp:HyperLink ID="Detalhado" runat="server" NavigateUrl="javascript:void(0);" onclick="Click_ListView2()">Detalhado</asp:HyperLink> </div> <div id="LV2"> <asp:ListView ID="ListView2" runat="server"> <EmptyDataTemplate><i>Nenhum Registro Encontrado</i></EmptyDataTemplate> <LayoutTemplate> <table class="tabela" border="0"> <tr class="cabecalho"> <th align="center"><asp:Label ID="DATA" runat="server">DATA</asp:Label></th> <th align="center"><asp:Label ID="TOTAL" runat="server">TOTAL</asp:Label></th> <th align="center"><asp:Label ID="ATIVOS" runat="server">ATIVOS</asp:Label></th> <th align="center"><asp:Label ID="INATIVOS" runat="server">INATIVOS</asp:Label></th> <th align="center"><asp:Label ID="CONVERSAO" runat="server">CONVERSÃO</asp:Label></th> </tr> <tr id="itemPlaceholder" runat="server"></tr> </table> </LayoutTemplate> <ItemTemplate> <tr> <td align="center"><asp:Label runat="server" id="lblData"><%#Eval("Data") %></asp:Label></td> <td align="center"><asp:Label runat="server" id="lblTotal"><%#Eval("Total")%></asp:Label></td> <td align="center"><asp:Label runat="server" id="lblAtivos"><%#Eval("Ativos")%></asp:Label></td> <td align="center"><asp:Label runat="server" id="lblInativos"><%#Eval("Inativos")%></asp:Label></td> <td align="center"><asp:Label runat="server" id="LblConversao"><%#Convert.ToDouble(Eval("Conversao")).ToString("N2") + "%" %></asp:Label></td> </tr> </ItemTemplate> </asp:ListView> public DataSet DSET_Resumo(int dia, int mes) { SqlCommand cmdTotal = new SqlCommand("select SUM(total)[TOTAL], SUM(totalAtivo)[TOTAL_ATIVOS], (SUM(totalAtivo) / SUM(total)) * 100 [iNDICE] from tb_conversao_cadastro WHERE mes = @Mes and dia >= @Dia", SQLConnection); cmdTotal.Parameters.AddWithValue("@dia", dia); cmdTotal.Parameters.AddWithValue("@mes", mes); SqlDataAdapter DA = new SqlDataAdapter(cmdTotal); DataSet DS = new DataSet(); DA.Fill(DS); return DS; } public DataSet DSET_Detalhado(int dia, int mes) { SqlCommand cmd = new SqlCommand("select CAST(Dia AS VARCHAR(2)) + '/' + CAST(Mes AS VARCHAR(1)) as Data, Total, TotalAtivo as Ativos, (Total - TotalAtivo) as Inativos, Conversao from tb_conversao_cadastro WHERE mes = @Mes and dia >= @Dia", SQLConnection); cmd.Parameters.AddWithValue("@dia", dia); cmd.Parameters.AddWithValue("@mes", mes); SqlDataAdapter DA = new SqlDataAdapter(cmd); //Ele busca os dados na fonte de dados e joga no DataSet DataSet DS = new DataSet();//Eh o que contém os dados e tabelas extraidos pelo DataAdapter DA.Fill(DS);//Fill é o que preenche o DataSet com os dados extraidos pelo DataAdapter / Ele também abre a conexão automaticamente e fecha assim que obter os dados return DS; } Galera, eu verifiquei que o select está retornando NULL, por isso o DataSet está com valor. Eu tentei usar o isNull e substituir por '' ( isnull(SUM(total), '') porém gera o seguinte erro: Msg 8114, Level 16, State 5, Line 9 Error converting data type varchar to numeric. Compartilhar este post Link para o post Compartilhar em outros sites
TeRRaBR 0 Denunciar post Postado Maio 24, 2012 Bom, consegui resolver o "problema"... Desculpem se fiz algo de errado por aqui, sou iniciante! Caso alguém queira saber ou palpitar sobre a resolução, segue o fiz: O problema era que na hora de preencher o dataset, estava gerando 1 registro em branco! Substitui diretamente no select tudo que fosse NULL por 0 select isnull(SUM(total), 0)[TOTAL], isnull(SUM(totalAtivo), 0)[TOTAL_ATIVOS], isnull((SUM(totalAtivo) / SUM(total)) * 100, 0)[iNDICE] from tb_conversao_cadastro WHERE mes = @Mes and dia >= @Dia Em seguida tratei na classe quando retornasse o TOTAL = 0, para dar um CLEAR no DataSet: DA.Fill(DS); if (DS.Tables[0].Rows[0]["TOTAL"].ToString() == "0") DS.Clear(); return DS; Agora tá tranquilo! Valeu ! Compartilhar este post Link para o post Compartilhar em outros sites