1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[RESOLVIDO]Iterar uma gridview com paging activo c#.

Discussão em 'Programação' iniciada por zbenta, 2 de Abril de 2009. (Respostas: 1; Visualizações: 1381)

  1. zbenta

    zbenta Power Member

    Boas minha gente,

    Tenho uma gridview com paging activo e tamanho de página igual a 15.
    Pretendo alterar a cor das linhas dessa gridview dependendo dos dados que estas contêm.
    Quando a página web, onde se encontra a gridview de que falo, é carregada a grid é preenchida usando um função para fazer o bind dos dados, de seguida chamo a função validadados(int index) cujo código podem ver de seguida:

    Código:
    
    protected void validadados(int indexdagrid)
        {
            dbcon conn=new dbcon(); 
    
            string query1 = "SELECT * from qqtabela";
            DataSet mydataset1 = new DataSet();
            mydataset1 = conn.selectDB(query1);
            conn.closeDB();
            int posicao = indexdagrid;  
    
            
            int count = 0;
            //actualizar o index dependendo da página onde se está
            if (indexdagrid > 0)
            {
                count = count + (GridView1.PageSize * indexdagrid);
            }
            int emprod = 0;
    
            
                for (int i =0; i < GridView1.Rows.Count; i++)
                {
                    String data1str = String.Format(mydataset1.Tables[0].Rows[i + count]["Data1"].ToString(), "yyyyMMdd", null);
                    String data2str = String.Format(mydataset1.Tables[0].Rows[i + count]["Data2"].ToString(), "yyyyMMdd", null);
                    String ano1 = data1str.Substring(0, 4);
                    String mes1 = data1str.Substring(4, 2);
                    String dia1 = data1str.Substring(6, 2);
                    String ano2 = data2str.Substring(0, 4);
                    String mes2 = data2str.Substring(4, 2);
                    String dia2 = data2str.Substring(6, 2);
    
                    DateTime data1 = System.DateTime.Parse(ano1 + "/" + mes1 + "/" + dia1);
                    DateTime data2 = System.DateTime.Parse(ano2 + "/" + mes2 + "/" + dia2);
    
                    //verifica se o cabo está em produção
                    if (data1 > data2 )
                    {
                        emprod = 1;
                    }
                    //verifica se o cabo está morto 
                    if (int.Parse(mydataset1.Tables[0].Rows[i + count]["Status"].ToString()) == 6 | int.Parse(mydataset1.Tables[0].Rows[i + count]["Status"].ToString()) == 0 )
                    {
                        GridView1.Rows[i].BackColor = System.Drawing.Color.Red;
                        
                    }
                    else
                        //cabo em produção
                        if (emprod == 1)
                        {
                            GridView1.Rows[i].BackColor = System.Drawing.Color.Yellow;
                            emprod = 0;
                        }
                        else
                            //cabo livre
                            if (int.Parse(mydataset1.Tables[0].Rows[i + count]["Status"].ToString()) != 6 | int.Parse(mydataset1.Tables[0].Rows[i + count]["Status"].ToString()) != 0 )
                            {
                                GridView1.Rows[i].BackColor = System.Drawing.Color.Green;
                                
                            }
                    
                }
        
        }
    
    
    Quando quero mudar de página na gridview chamo a função index changing que me muda o index da página chama a função para fazer o bind dos dados e chama novamente a função validadados(int index).
    Já vi isto em debug e a função detecta tudo direito até muda a cor das linhas conforme pretendido, o problema é que quando a página é mostrada a gridview não tem nenhuma alteração de cor.
    Alguém me pode dar uma dica?
     
    Última edição: 2 de Abril de 2009
  2. zbenta

    zbenta Power Member

    Já descobri a solução estava a fazer o bind dos dados logo a seguir à execução da função e isso estava-me a confundir a gridview.
     

Partilhar esta Página