Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TeRRaBR

[Resolvido] ListView exibindo cabeçalho

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.