Fazer uma PerguntaFazer uma Pergunta
 

Resposta PropostaPaginação GridView

  • terça-feira, 3 de novembro de 2009 11:37André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Bom dia pessoal,

    Estou preenchendo as GridViews do sistema através de uma Generic List de objetos. O preenchimento dos dados ocorre corretamente, mas a paginação não funciona. Alguém poderia me dizer como devo proceder?

    Grato
    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!

Todas as Respostas

  • terça-feira, 3 de novembro de 2009 11:48Erysson Barros Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    Fale,

     

    Olha esse link bem completo esse artigo:

    http://www.linhadecodigo.com.br/Artigo.aspx?id=788

     

       Abraço!
    Se a resposta solucionar sua dúvida, favor - Votar como Útil Abraço!
  • terça-feira, 3 de novembro de 2009 11:53Thiago Dorneles Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Ola André,

    Segue alguns links que podem te ajudar:

    Paginação Customizada no GridView
    http://www.devmedia.com.br/articles/viewcomp.asp?comp=5671

    Explorando o GridView
    http://www.linhadecodigo.com.br/Artigo.aspx?id=788&pag=2

    Personalizando a paginação no GridView
    http://www.bufaloinfo.com.br/artigos/coluna37.asp


    Atenciosamente


    Se a resposta for útil marque como tal
    Thiago Dorneles
  • terça-feira, 3 de novembro de 2009 11:58Rudson Kiyoshi Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
  • terça-feira, 3 de novembro de 2009 11:58Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Cara se vc está trabalhando com generics, vc vai ter que implementar algo parecido com isso
    http://dotnetslackers.com/Community/blogs/simoneb/archive/2007/06/20/How-to-sort-a-generic-List_3C00_T_3E00_.aspx

    Da uma procurada por sort generic list, eu já implementei um isso, vai dar um pouco de trabalho :).
  • terça-feira, 3 de novembro de 2009 12:26André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Contém Código
    Olá pessoal,

    Obrigado pelas dicas, algumas eu poderei utilizar em outros projetos, mas acho que nenhuma delas vai resolver meu problema agora.

    Não posso amarrar o método de carregamento a um datasource, pois preciso passar alguns parametros que são recuperados dinamicamente.
    O problema é que quando clico em um link da paginação não acontece nada, a página atual permanece.

    Já coloquei o seguinte código no PageIndexChanging, mas não resolveu:

    gvLista.PageIndex = e.NewPageIndex;
    gvLista.DataBind();
    

    Grato
    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
  • terça-feira, 3 de novembro de 2009 12:30Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Se vc quer fazer assim, vc tem implementar no sorting algo parecido com isso

    http://geekswithblogs.net/azamsharp/archive/2006/04/27/76612.aspx
  • terça-feira, 3 de novembro de 2009 12:34Erysson Barros Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    Fale,

     

    Salva a fonte de dado no ViewState e na hora de paginar você faz dessa forma de acordo com a listagem 1:

     

    Listagem 1:

            gvLista.PageIndex = e.NewPageIndex;

                gvLista.DataSource = (DataSet)ViewState["NomeViewState"];

                gvLista.DataBind();

     

    Abraço!


    Se a resposta solucionar sua dúvida, favor - Votar como Útil Abraço!
  • terça-feira, 3 de novembro de 2009 12:35André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Olá Seilor,

    Esta GridView que estou populando não terá a possibilidade de ordenação, somente paginação, que é onde estou tendo problemas.

    Obrigado

    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
  • terça-feira, 3 de novembro de 2009 12:54Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Desculpe me confundi para o paging faz o que o erysson postou no ultimo post que tem que dar certo,
    1-vc setá o novo index, depois da bind com sua consulta, só cuidado que jogas um dataset na viewstate pode ficar meio pesada sua pagina :)
  • terça-feira, 3 de novembro de 2009 13:07André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    O único problema desse código que o Erysson postou é que não estou utilizando um dataset, estou utilizando uma generic list, seria possível utilizar o mesmo código com uma list?

    Grato

    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
  • terça-feira, 3 de novembro de 2009 13:18Erysson Barros Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    Fale,

     

    Salva a fonte de dado no ViewState e na hora de paginar você faz dessa forma de acordo com a listagem 1:

     

    Listagem 1:

     

            gvLista.PageIndex = e.NewPageIndex;

     

                gvLista.DataSource =  ViewState["NomeViewState"];

     

                gvLista.DataBind();

     

    Abraço!


    Se a resposta solucionar sua dúvida, favor - Votar como Útil Abraço!
  • terça-feira, 3 de novembro de 2009 13:20Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Sim, é so salvar sua lista na viewstate :)

    Faz uma propriedade, que fica mais bonito o código :)

     public List<T> MyList
        {
           get
           {
               if (ViewState["MyList"] == null)
                   return new List<SeuObjeto>();
               else
                   return (List<SeuObjeto>)ViewState["MyList"];
           }

            set
            {
                ViewState.Add("MyList", value);
            }
        }
  • terça-feira, 3 de novembro de 2009 13:30André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Pessoal não adiantou, quando clico em outra página a atual continua permanecendo. Tá dificil!
    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
  • terça-feira, 3 de novembro de 2009 13:34Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Posta o seu codigo da parte da paginação e o html da gridview
  • terça-feira, 3 de novembro de 2009 15:09André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Contém Código
    Código para preencher a GridView (este código está no evento Page_Load):

    Conteudo conteudo = new Conteudo(getString.ConnectionString);
    List<Conteudo> conteudos = conteudo.carregarConteudos(id_site, id, 0, 0, "titulo", 0, 'T', idioma);
    gvLista.DataSource = conteudos;
    gvLista.DataBind();
    

    Código da paginação (atribui à GridView o evento OnPageIndexChanging="paginacao"):

    protected void paginacao(object sender, GridViewPageEventArgs e)
    {
            gvLista.PageIndex = e.NewPageIndex;
            gvLista.DataBind();
    }


    Código da GridView:

    <asp:GridView ID="gvLista" runat="server" 
                            DataKeyNames="ID"
                            OnRowDataBound="preencherTabela"
                            OnPageIndexChanging="paginacao"
                            AutoGenerateColumns="False"  
                            AllowPaging="True" PageSize="5"
                            EmptyDataText="Nenhum registro foi encontrado."
                            Width="100%" 
                            GridLines="none" PagerSettings-Mode="NumericFirstLast" 
                            BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" 
                            CellPadding="4" ForeColor="Black">
                        <Columns>
                            <asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="2%">
                                <ItemTemplate>
                                    <asp:Image ID="imgIcone" runat="server" />
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField ItemStyle-HorizontalAlign="Left" ItemStyle-Width="98%">
                                <ItemTemplate>
                                    <asp:HyperLink ID="hlTitulo" runat="server" />
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>
    

    Grato

    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
  • terça-feira, 3 de novembro de 2009 15:20Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Contém Código
    VC tem que fazer igual está abaixo, salvar sua consulta na session ou viewstate e recuperar ela na paginação, ou vc pode refazer sua consulta igual 
    no exemplo 2


    protected void paginacao(object sender, GridViewPageEventArgs e)
    {

    List<Conteudo> conteudos = recupere sua consulta da viewstate ou session

    gvLista.PageIndex = e.NewPageIndex;
    gvLista.DataSource = conteudos;
    gvLista.DataBind();



    }


    2
    protected void paginacao(object sender, GridViewPageEventArgs e)
    {


    Conteudo conteudo = new Conteudo(getString.ConnectionString);
    List<Conteudo> conteudos = conteudo.carregarConteudos(id_site, id, 0, 0, "titulo" , 0, 'T' , idioma);

    gvLista.PageIndex = e.NewPageIndex;
    gvLista.DataSource = conteudos;
    gvLista.DataBind();



    }

  • terça-feira, 3 de novembro de 2009 15:58André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Olá Seilor, agora nem está executando o PostBack do link de paginação.

    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
  • terça-feira, 3 de novembro de 2009 16:05Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Que estranho, pq era para funcionar, a sua grid vc carrega no pageload?
  • terça-feira, 3 de novembro de 2009 16:26André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Sim, estou carregando ela no Page_Load.

    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
  • terça-feira, 3 de novembro de 2009 16:28Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Contém Código
    Tenta assim



    gvLista.DataSource = conteudos;

    gvLista.DataBind();

    gvLista.PageIndex = e.NewPageIndex;

  • terça-feira, 3 de novembro de 2009 16:35Erysson Barros Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    Fale,

     

    Na paginação tenta adaptar de acordo com a listagem 1:

     

    Listagem 1

     

    gvLista.PageIndex = e.NewPageIndex;

     

    Conteudo conteudo = new Conteudo(getString.ConnectionString);

    List<Conteudo> conteudos = conteudo.carregarConteudos(id_site, id, 0, 0, "titulo", 0, 'T', idioma);

     

    gvLista.DataSource = conteudos;

    gvLista.DataBind();

     

    Abraço!


    Se a resposta solucionar sua dúvida, favor - Votar como Útil Abraço!
  • terça-feira, 3 de novembro de 2009 16:44André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Também não funcionou

    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
  • quarta-feira, 4 de novembro de 2009 11:52André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Bom dia pessoal,

    Resolvi mudar a maneira de carregar a Grid. Queria aproveitar o método que retornava a List, mas vi que está dando mais dor de cabeça do que criar um outro método que retorne um DataSet, por exemplo.

    Alguém poderia me ajudar, dizendo como posso criar uma consulta que gere um dataset, a partir de uma consulta feita com stored procedure?

    Grato
    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
  • quarta-feira, 4 de novembro de 2009 12:02Erysson Barros Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    Fale,

     

    Um pequeno exemplo mostra como criar a conexão com o BD Listagem 1 e a listagem 2 método que retorna o DataSet e a listagem 3 mostar como popular um gridview através do DataSet

     

    Listagem 1:

    SqlConnection dataConnection = new SqlConnection();

    dataConnection.ConnectionString = "nome string conexão";

    dataCommand.Connection = dataConnection;

    dataCommand.CommandType = CommandType.StoredProcedure;     //Colocar o comandType com a propriedade StoredProcedure

     

    Listagem 2

            public DataSet ExecuteDataSet()

            {

                SqlDataAdapter da = null;

                DataSet ds = null;

                try

                {

                    da = new SqlDataAdapter();

                    da.SelectCommand = (SqlCommand)dataCommand;

                    ds = new DataSet();

                    da.Fill(ds);

                }

                catch (Exception ex)

                {

                    if (handleErrors)

                        strLastError = ex.Message;

                    else

                        throw;

                }

     

     

                return ds;

            }

     

    Listagem 3

     


     

        private void CarregaGrid()

        {

            DataSet ds = new DataSet();

            BaseAccess db = new BaseAccess();

     

            db.CommandText = "exec nome_procedure";

     

            ds = db.ExecuteDataSet(db.CommandText);

     

            gvProdutos.DataSource = ds;

            gvProdutos.DataBind();

     

        }

     

    Abraço!


    Se a resposta solucionar sua dúvida, favor - Votar como Útil Abraço!
  • quarta-feira, 4 de novembro de 2009 12:40André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Obrigado Erysson, vou implementar o código aqui e retorno para indicar se funcionou corretamente dessa vez.


    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
  • quarta-feira, 4 de novembro de 2009 17:46André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Contém Código
    Rapaziada, só pode ser bruxaria!

    Tentei de mais dois jeitos:
    - DataSet
    - ObjectDataSource

    Porém continuou na mesma, quando clico em um link da paginação, a pagina atual é recarregada.

    Agora estou preenchendo a GridView dessa forma:

    HTML:

    <asp:ObjectDataSource ID="dsLista" runat="server" OnObjectCreating="iniciar"></asp:ObjectDataSource>
                    
                    <asp:GridView ID="gvLista" runat="server" 
                            DataKeyNames="ID"
                            DataSourceID="dsLista"
                            OnRowDataBound="preencherTabela"
                            OnPageIndexChanging="paginacao"
                            AutoGenerateColumns="False"  
                            AllowPaging="True" 
                            PageSize="3"
                            EmptyDataText="Nenhum registro foi encontrado."
                            Width="100%" 
                            GridLines="None" 
                            BorderStyle="None"
                            CellPadding="4" ShowHeader="False"
                            PagerSettings-Mode="NumericFirstLast"
                            PagerStyle-CssClass="paginacao" 
                            PagerSettings-FirstPageImageUrl="imagens/paginacaoAnterior.jpg" 
                            PagerSettings-LastPageImageUrl="imagens/paginacaoProximo.jpg" 
                            PagerSettings-PageButtonCount="1">
                        <PagerSettings FirstPageImageUrl="imagens/paginacaoAnterior.jpg" 
                            LastPageImageUrl="imagens/paginacaoProximo.jpg" Mode="NumericFirstLast" 
                            PageButtonCount="1" />
                        <Columns>
                            <asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="2%">
                                <ItemTemplate>
                                    <asp:Image ID="imgIcone" runat="server" />
                                </ItemTemplate>
                                <ItemStyle HorizontalAlign="Center" Width="2%" />
                            </asp:TemplateField>
                            <asp:TemplateField ItemStyle-HorizontalAlign="Left" ItemStyle-Width="98%">
                                <ItemTemplate>
                                    <asp:HyperLink ID="hlTitulo" runat="server" />
                                </ItemTemplate>
                                <ItemStyle HorizontalAlign="Left" Width="98%" />
                            </asp:TemplateField>
                        </Columns>
                        <PagerStyle CssClass="paginacao" />
                    </asp:GridView>
    

    Código:

    dsLista.SelectMethod = "carregarConteudos";
                                dsLista.SelectParameters.Add("id_site", Convert.ToString(id_site));
                                dsLista.SelectParameters.Add("id_secao", Convert.ToString(id));
                                dsLista.SelectParameters.Add("id_tipo", "0");
                                dsLista.SelectParameters.Add("id_tipo_texto", "0");
                                dsLista.SelectParameters.Add("ordenar", "titulo");
                                dsLista.SelectParameters.Add("quantidade", "0");
                                dsLista.SelectParameters.Add("destaque", "T");
                                dsLista.SelectParameters.Add("idioma", idioma);
                                dsLista.TypeName = "App_Sites.Conteudo.Conteudo";
                                dsLista.DataBind();
    

    Está preenchendo corretamente, mas a paginação teima em não funcionar.
    Não sei se é uma dúvida plausivel, mas poderia ser porque estou usando uma library para URL amigável?

    Grato

    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
  • quinta-feira, 5 de novembro de 2009 7:36Dennes Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Resposta Proposta

    Oi,

    O databind deveria ser na grid e não no objectDataSource.

    Tem algo que, se observei bem, você ainda não mostrou : Seu page_load. O erro que você descreveu estaria acontecendo se você houver colocado no page_load o código para carregar a grid sem fazer o teste do isPostBack.

    De resto, a atribuição do newpageindex e o databind feito no evento pageindexchanged da gridview funcionaria, só falhando caso seu page_load tenha o problema acima.

    []'s
    Dennes
    http://twitter.com/Dennes


    Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp
  • quinta-feira, 5 de novembro de 2009 12:17André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Olá Dennes,

    Não postei o Page_Load aqui pois está um pouco extenso, mas o carregamento da GridView está dentro de um if (!IsPostBack) .

    "De resto, a atribuição do newpageindex e o databind feito no evento pageindexchanged da gridview funcionaria, só falhando caso seu page_load tenha o problema acima."

    O correto é usar o pageindexchanged ou o pageindexchanging ?

    Grato
    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
  • quinta-feira, 5 de novembro de 2009 13:19Dennes Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    Oi,

    Desculpe, equivoco meu - changing

    Se isso não funcionar, experimente uma depuração com breakpoints no pageindexchanging.


    []'s
    Dennes
    http://twitter.com/Dennes

    * Treinamento C# e Framework .NET c/OO dia  07/11 - Apenas 12 R$ 42,53  Inscreva-se em http://www.bufaloinfo.com.br/cursos/fundamentosOOFramework.asp

    * Treinamento de ASP.NET 3.5 no RJ dia 16/11 - Apenas 12x R$ 60,48 - Inscreva-se em http://www.bufaloinfo.com.br/descontoaspnetantecipado.asp

    Tel : (11) 3170-3056 (21)9240-5134 E-Mail: contato arroba bufaloinfo.com.br
    http://www.bufaloinfo.com.br


    Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp
  • quinta-feira, 5 de novembro de 2009 13:39André Silveira Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Contém Código
    Essa é outra página em que a paginação também não está funcionando.

    Code behind:

    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                // * Recupera a string de conexão armazenada no arquivo web.config 
                ConnectionStringSettings getString = WebConfigurationManager.ConnectionStrings["conexao"] as ConnectionStringSettings;
    
                string palavras_chave = string.Empty;
                string idioma = string.Empty;
    
                if (Session["idioma"] != null)
                {
                    idioma = Session["idioma"].ToString();
                }
    
                // * Retorna as palavras chave buscadas
                if (!string.IsNullOrEmpty(Request.Form["txBusca"]))
                {
                    palavras_chave = Request.Form["txBusca"].ToString();
                }
    
                // * Informa as palavras buscadas
                pPalavrasChave.InnerHtml = "<strong>Palavra(s) informada(s): </strong>" + palavras_chave;
    
                if (!string.IsNullOrEmpty(palavras_chave))
                {
                    // * Inicia a classe Conteudo
                    Conteudo conteudos = new Conteudo(getString.ConnectionString);
                    // * Retorna os conteúdos a partir das palavras buscadas
                    List<Conteudo> lista = conteudos.buscarConteudos(palavras_chave, idioma);
    
                    // * Verifica se foi encontrado algum conteúdo
                    if (lista.Count > 0)
                    {
                        // * Lista os conteúdos na GridView
                        gvLista.DataSource = lista;
                        gvLista.DataBind();
                    }
                    else
                    {
                        pPalavrasChave.InnerHtml += "<br /><br />Não foi encontrado nenhum registro para as palavras pesquisadas.";
                        gvLista.DataBind();
                    }
                }
                else
                {
                    pPalavrasChave.InnerHtml += "<br /><br />É necessário informar algum dado para a pesquisa.";
                }
            }
        }
    
    // * Método para paginação
        protected void paginacao(object sender, GridViewPageEventArgs e)
        {
            gvLista.PageIndex = e.NewPageIndex;
            gvLista.DataBind();
        }
    

    HTML:

    <asp:GridView ID="gvLista" runat="server" 
                    DataKeyNames="ID"
                    OnRowDataBound="preencherTabela"
                    OnPageIndexChanging="paginacao"
                    AutoGenerateColumns="False"  
                    AllowPaging="True" PageSize="3"
                    Width="100%"
                    ShowHeader="false"
                    GridLines="none" BorderStyle="None" 
                    CellPadding="4" 
                    PagerStyle-CssClass="paginacao" >
                    <PagerSettings 
                    FirstPageImageUrl="~/imagens/paginacaoAnterior.jpg" 
                    LastPageImageUrl="~/imagens/paginacaoProximo.jpg" 
                    Mode="NumericFirstLast">
                    </PagerSettings>
                <Columns>
                    <asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="2%">
                        <ItemTemplate>
                            <asp:Image ID="imgIcone" runat="server" />
                        </ItemTemplate>
                        <ItemStyle HorizontalAlign="Center" Width="2%"></ItemStyle>
                    </asp:TemplateField>
                    <asp:TemplateField ItemStyle-HorizontalAlign="Left" ItemStyle-Width="98%">
                        <ItemTemplate>
                            <asp:HyperLink ID="hlTitulo" runat="server" />
                        </ItemTemplate>
                        <ItemStyle HorizontalAlign="Left" Width="98%"></ItemStyle>
                    </asp:TemplateField>
                </Columns>
                <PagerStyle CssClass="paginacao"></PagerStyle>
            </asp:GridView>
    

    O que há de errado neste código????


    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!