none
Paginação RRS feed

  • Pergunta

  • Bom dia,

    Já procurei de várias formas e não achei uma solução ainda.

    Tenho uma página (Posts.aspx) com um gridview paginado.

    Numa outra pagina (Pesquisa.aspx) eu tenho uma pesquisa com link para o Post.aspx.

    A questão é, na página Post.aspx, como eu defino o PageIndex do gridview para mostrar o registro selecionado na pesquisa?? Sendo que ele pode está em qualquer lugar na paginação..

     

    Estou usando ObjectDataSource e Generic.List(of) para retornar os registros.

     

    Obrigado,

     


    Fabiano Se for útil, marque como Útil!
    segunda-feira, 4 de outubro de 2010 14:42

Respostas

  • Como eu falei pelo pageIndex vc pega,

    suegrid.pageIndex = 7;

    e pelo rowdatabound vc seleciona o index.

    • Sugerido como Resposta Edgar Esteves segunda-feira, 4 de outubro de 2010 17:46
    • Marcado como Resposta Fabiano P Silva segunda-feira, 4 de outubro de 2010 17:59
    segunda-feira, 4 de outubro de 2010 17:38
    Moderador
  • Olá Seilor,

    Quase isso....  Com o rowdatabound eu nao conseguia pegar o Index pq o numero de registros era igual ao PageSize, entao eu nao conseguia percorrer todos os registros.

    Eu consegui pegar o index atraves do ObjectDataSource_Selected!!!

    Agradeço vocês pela ajuda!

     


    Fabiano Se for útil, marque como Útil!
    • Marcado como Resposta Fabiano P Silva segunda-feira, 4 de outubro de 2010 17:59
    segunda-feira, 4 de outubro de 2010 17:59

Todas as Respostas

  • Acho que o correto não seria vc passar o pageIndex, mais sim passar o datakey pois assim vc quando fizer um load na sua page faria somente uma busca pelo seu id
    segunda-feira, 4 de outubro de 2010 14:56
    Moderador
  • Olá Seilor,

    Na verdade, é isso que eu to fazendo.. e passo o datakey, mas nao sei como fazer esta busca no datasource para definir o pageindex.

    Olha so o que estou tentando:

     

      Protected Sub gvPosts_DataBound(ByVal sender As Object, ByVal e As System.EventArgs)
    
        If Request.QueryString("p") IsNot Nothing _
            AndAlso Request.QueryString("p").ToString.Trim <> "" Then
    
          For p As Integer = CType(sender, GridView).PageIndex To CType(sender, GridView).PageCount
    
            CType(sender, GridView).PageIndex = p
    
            For Each dr As GridViewRow In CType(sender, GridView).Rows
    
              If dr.RowType = DataControlRowType.DataRow Then
    
                If CType(dr.Cells(0).FindControl("codpos"), HiddenField).Value.ToString() = Request.QueryString("p") Then
                  Exit Sub
                End If
    
              End If
    
            Next
    
          Next
    
        End If
    
      End Sub
    
    

     

    Mas nao estou conseguindo.


    Fabiano Se for útil, marque como Útil!
    segunda-feira, 4 de outubro de 2010 16:21
  • Vc passa como parameter para seu datasource ae depois vai o bind
    ex:

    ObjectDataSource.selectparameters["SeuID"].defaultValue = sua querystring

    segunda-feira, 4 de outubro de 2010 16:47
    Moderador
  • Só que eu nao posso filtrar pelo id, pois eu preciso mostrar todos os registros no grid, e depois, eu preciso setar o pageindex da página que contém o registro especifico (que eu recebo por querystring).

     

    Não entendi muito bem sua sugestão.

     


    Fabiano Se for útil, marque como Útil!
    segunda-feira, 4 de outubro de 2010 17:01
  • Cara então vc teria que passar os parametros igual a sua outra consulta, caso nao tenha vc pode passar o seu pageIndex e setar ele na sua grid
    segunda-feira, 4 de outubro de 2010 17:22
    Moderador
  • Por que no evento RowDataBound(populando em execução) vc não faz uma verificação apartir da datakey e e pinta a linha ou faz a marcação necessaria, vc terá o grid completo e a marcação na onde pretendia.

     

    abs

    • Sugerido como Resposta Edgar Esteves segunda-feira, 4 de outubro de 2010 17:46
    segunda-feira, 4 de outubro de 2010 17:25
  • Olá Edgar, tudo bem??

    Já estou marcando a linha do grid como outra cor (bem bacana), mas alem disso eu preciso iniciar o grid exatamente na pagina que consta o registro.

    É uma alteração que o cliente solicitou.

     

    Tem alguma outra ideia?


    Fabiano Se for útil, marque como Útil!
    segunda-feira, 4 de outubro de 2010 17:31
  • Como eu falei pelo pageIndex vc pega,

    suegrid.pageIndex = 7;

    e pelo rowdatabound vc seleciona o index.

    • Sugerido como Resposta Edgar Esteves segunda-feira, 4 de outubro de 2010 17:46
    • Marcado como Resposta Fabiano P Silva segunda-feira, 4 de outubro de 2010 17:59
    segunda-feira, 4 de outubro de 2010 17:38
    Moderador
  • Olá Seilor,

    Quase isso....  Com o rowdatabound eu nao conseguia pegar o Index pq o numero de registros era igual ao PageSize, entao eu nao conseguia percorrer todos os registros.

    Eu consegui pegar o index atraves do ObjectDataSource_Selected!!!

    Agradeço vocês pela ajuda!

     


    Fabiano Se for útil, marque como Útil!
    • Marcado como Resposta Fabiano P Silva segunda-feira, 4 de outubro de 2010 17:59
    segunda-feira, 4 de outubro de 2010 17:59