none
paginar gridview RRS feed

  • Pergunta

  • Uso VS2010, aspnet4, c# sqlserver

    estou fazendo o select abaixo e exibindo em um GridView:

    SqlConnection con = new SqlConnection(conexao);
                    con.Open();
                    SqlDataReader rd;
                    SqlCommand cmd = new SqlCommand("SELECT aspnet_Users.UserName, aspnet_Roles.RoleName, aspnet_Users.LastActivityDate FROM   aspnet_Users INNER JOIN aspnet_UsersInRoles ON aspnet_Users.UserId = aspnet_UsersInRoles.UserId INNER JOIN aspnet_Roles ON aspnet_UsersInRoles.RoleId = aspnet_Roles.RoleId ORDER BY aspnet_Users.UserName", con);
                    
                    rd = cmd.ExecuteReader();
                    GridViewUsuario.DataSource = rd;
                    GridViewUsuario.DataBind();
                    rd.Close();
                    con.Close();

    coloquei o GridView com paginação = true, mas dá um erro informando:

    "A fonte de dados não oferece suporte para paginação de dados no servidor." 

    quando ponho o GridView paginação = false, funciona, mas gostaria de paginar o GridView caso tenha muitos registros, como faço??


    Álvaro Luiz


    • Editado Álvaro Luiz sexta-feira, 8 de março de 2013 01:15
    sexta-feira, 8 de março de 2013 01:14

Respostas

  • Um DataReader é somente leitura e os registros são lidos de forma sequencial sempre para frente e por conta disso ele não suporta a paginação.

    Joga as informações em um DataTable e passa para o GridView.

    DataTable dt = new DataTable(); dt.Load(rd);

    GridViewUsuario.DataSource = dt; GridViewUsuario.DataBind();




    Leonardo Lourenço Silva


    sexta-feira, 8 de março de 2013 01:37