none
duvida com ordenação na gridView RRS feed

  • Pergunta

  • pessoal, tenho uma gridView que é populada em tempo de execução da seguinte forma:

     grdCoresMp.DataSource = classMpCoresVO.getMpCoresVO(Convert.ToInt32(txtCodigo.Text), 1);
     grdCoresMp.DataBind();

    os dados são carregados normalmente, porem preciso ordenar quando o usuario clicar no cabeçalho da coluna, mas nao esta funcionando, na propriedade EnableSortingAndCallBacks deixei como true, e no source coloquei "AllowSorting="true"

    mas não funciona de jeito nenhum, nem aparece sublinhado quando esta executando.

    alguem poderia dar uma ajuda ai ?



    alessandre

    quarta-feira, 5 de setembro de 2012 22:17

Respostas

  • Utilizando o AllowSorting você simplesmente disse que vai habilitar a função, porém, tu precisa utilizar o OnSorting="gv_Pendencias_Sorting" , no seu code-behind fica mais ou menos assim:

    Obs: ali estou utilizando o data table na Sessão,por motivos operacionais, más não precisa necessariamente.

    protected void gv_Pendencias_Sorting(object sender, GridViewSortEventArgs e)
            {
                DataTable dt = new DataTable();
                dt = Session["dt_ConsultarPendencias"] as DataTable;
                DataView view = new DataView(dt);
                view.Sort = e.SortExpression + " " + gv_Pendencias_Sorting_ObterDirecao(e.SortExpression);
                Session["dt_ConsultarPendencias"] = view.ToTable();
                gv_Pendencias.DataSource = view.ToTable();
                gv_Pendencias.DataBind();
            }
    
            private string gv_Pendencias_Sorting_ObterDirecao(string coluna)
            {
                string SorDirection = "ASC";
    
                string SortExpression = ViewState["SortExpression"] as string;
                if (SortExpression != null)
                {
                    string UltimaDirecao = ViewState["SortDirection"] as string;
                    if (UltimaDirecao != null)
                    {
                        if (UltimaDirecao == "ASC")
                        {
                            SorDirection = "DESC";
                        }
                    }
                }
    
                ViewState["SortDirection"] = SorDirection;
                ViewState["SortExpression"] = coluna;
                return SorDirection;
            }



    Se a resposta foi útil por favor qualifique. Italo Biguzi Duarte, Desenvolvedor ASP.NET C#, Italo.biguzzi@gmail.com

    • Marcado como Resposta Harley Araujo segunda-feira, 10 de setembro de 2012 12:26
    quinta-feira, 6 de setembro de 2012 11:17
  • E ae brother, blz cara?

    Seguinte, eu disponibilizei um exemplo neste link:

    https://skydrive.live.com/?cid=dfff11068f1d6999&id=DFFF11068F1D6999%21170&Bsrc=Share&Bpub=SDX.SkyDrive

    Nome do arquivo: ExemploOrdenação

    Espero que ajude na seu problema, boa sorte!!!


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    • Marcado como Resposta Harley Araujo segunda-feira, 10 de setembro de 2012 12:26
    quarta-feira, 5 de setembro de 2012 23:14

Todas as Respostas

  • E ae brother, blz cara?

    Seguinte, eu disponibilizei um exemplo neste link:

    https://skydrive.live.com/?cid=dfff11068f1d6999&id=DFFF11068F1D6999%21170&Bsrc=Share&Bpub=SDX.SkyDrive

    Nome do arquivo: ExemploOrdenação

    Espero que ajude na seu problema, boa sorte!!!


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    • Marcado como Resposta Harley Araujo segunda-feira, 10 de setembro de 2012 12:26
    quarta-feira, 5 de setembro de 2012 23:14
  • Utilizando o AllowSorting você simplesmente disse que vai habilitar a função, porém, tu precisa utilizar o OnSorting="gv_Pendencias_Sorting" , no seu code-behind fica mais ou menos assim:

    Obs: ali estou utilizando o data table na Sessão,por motivos operacionais, más não precisa necessariamente.

    protected void gv_Pendencias_Sorting(object sender, GridViewSortEventArgs e)
            {
                DataTable dt = new DataTable();
                dt = Session["dt_ConsultarPendencias"] as DataTable;
                DataView view = new DataView(dt);
                view.Sort = e.SortExpression + " " + gv_Pendencias_Sorting_ObterDirecao(e.SortExpression);
                Session["dt_ConsultarPendencias"] = view.ToTable();
                gv_Pendencias.DataSource = view.ToTable();
                gv_Pendencias.DataBind();
            }
    
            private string gv_Pendencias_Sorting_ObterDirecao(string coluna)
            {
                string SorDirection = "ASC";
    
                string SortExpression = ViewState["SortExpression"] as string;
                if (SortExpression != null)
                {
                    string UltimaDirecao = ViewState["SortDirection"] as string;
                    if (UltimaDirecao != null)
                    {
                        if (UltimaDirecao == "ASC")
                        {
                            SorDirection = "DESC";
                        }
                    }
                }
    
                ViewState["SortDirection"] = SorDirection;
                ViewState["SortExpression"] = coluna;
                return SorDirection;
            }



    Se a resposta foi útil por favor qualifique. Italo Biguzi Duarte, Desenvolvedor ASP.NET C#, Italo.biguzzi@gmail.com

    • Marcado como Resposta Harley Araujo segunda-feira, 10 de setembro de 2012 12:26
    quinta-feira, 6 de setembro de 2012 11:17
  • E ae tuco, blz cara? conseguiu solucionar o seu problema?

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    sexta-feira, 7 de setembro de 2012 11:26
  • Fala Janderson blz, nao tive tempo ainda de testar o seu codigo, mas agradeço imensamente por ter ajudado, espero testar ainda hj

    alessandre

    quarta-feira, 19 de setembro de 2012 10:08