Este é um script que criei com base em outros feitos em pequenas páginas por mim.
Este script possui Sub’s de Navegação, Listagem, Paginação númerica, auto reconhecimento e geração dos nomes das colunas e exibição da página atual e total de páginas.
É de fácil adaptação, podendo ser aplicados seus próprios estilos e métodos de formatação. E por se tratar de estar totalmente modularizado, a disposição da paginação, paginação númeria ou listagem, fica à total disposição do desenvolvedor.
Baixe o arquivo em anexo para pegar a versão completa do código
<% 'Desenvolvido por Diogo Silvério([email protected]) 'Fez alguma Alteração? Poste aqui sem tirar os créditos anteriores. 'A alteração ficou legal?? Manda pra mim o link '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------ 'Os estilos podem facilmente serem alterados, tanto in quanto out-line 'Cuidado especial com essas variáveis globais, se alterar alguma 'lembre-se de alterar também na página onde é feita a inclusão desse .Asp '------------------------------------------------------------------------- 'Ah sim, é lógico que é livre pra ser usado em qualquer site, inclusive 'para seus clientes, tio, papagaio e etc, mas não vendido ou ser parte 'daqueles CD's ou coleções fuleiras vendidos em CD em banca de jornal! ' 'No mais, bom uso, e reportem qualquer coisa! '[]'s a todos Dim objCon, objRs Dim contador Dim tamanhoPag, pagAtual Dim buscaNome ' Aqui você adiciona seus novos campos de busca Dim buscaNomeOk ' E também adicione uma variavel com o mesmo nome finalizando com Ok, logo mais vera o porque Dim queryDados, queryDadosExtra, buscaInterna Set objCon = Server.CreateObject("Adodb.Connection") 'Criação do Obj de Conexão Set objRs = Server.CreateObject("Adodb.RecordSet") 'Criação do RecorSet %> <% Sub CarregarRs(driver)' Aqui é Carregado o seu RS e SGBD '----------------------------------------------------------- buscaExtra = "" 'É vazio, mas será preenchido caso algum campo de busca exista! queryDados = "Select * from Clientes" 'Query Básica, atente-se ao controle abaixo, explicado posteriormente queryDadosExtra = false 'Valor inicial é falso mesmo '----------------------------------------------------------- tamanhoPag = Cint(Request("qtd")) 'Tanto QueryString quanto Form pagAtual = Cint(Request("pag")) 'Idem buscaNome = Request("txt_nome") ' Adicione outras campos de busca que desejar, lembrando da oura variavel com ok no fim if((pagAtual <=0) or (pagAtual = "")) then pagAtual = 1 'Por questão de bom senso, caso não haja numero ou a página tenha número negativo(Lammer FDP, quase buga sua paginação uashusa) o valor é configurado como 1 if((tamanhoPag <=0) or (tamanhoPag = "")) then tamanhoPag = 10 ' O mesmo que de cima '------------------------------------------ 'Aqui está algo que não achei muito comum. 'Nesse ponto, as variaveis de busca que possuirem algum valor 'terão suas variaveis OK configuradas como true ' if(buscaNome <> "") then buscaNomeOk = true 'Se houver caracteres em BuscaNome, BuscaNomeOk é VERDADEIRO if((buscaNomeOk)) then 'SE BuscaNomeOk É VERDADEIRO, queryDadosExtra também será. Aqui, adicione seguidas condicionais para verificar todos os campos de busca, e fazer o mesmo com o queryDadosExtra queryDadosExtra = True end if '------------------------------------------ if(queryDadosExtra) then 'Se QueryDadosExtra é verdadeiro if(buscaNomeOk) then 'E busca também o é buscaInterna = buscaInterna & " nome like '%" & buscaNome & "%'" ' Então, adicione à buscaInterna estes parametros. LEMBRE-SE do espaço no ínicio de cada campo verdadeiro end if queryDados = queryDados & " where" & buscaInterna 'Logo, se querDadosExtra e buscaNome é verdadeiro e BuscaInterna foi preenchida, à queryDados é concatenada com o valor da buscaInterna. end if 'Já se foi o mais chato, agora é configuração de RecordSet apenas(outra parte que pode ser muita chata se houverem incorreções no queryBusca! fique atento ;]) '------------------------------------------ objCon.open driver ' Abre o driver especificado objRs.ActiveConnection = objCon ' Abre sua conexão com o BD objRs.CursorLocation = 3 ' adUseClient, use 2(adUseServer) caso queira que o cursos fique no Server objRs.CursorType = 2 'adUseDinamic ou 1 para adUseStatic objRs.PageSize = tamanhoPag 'Tamanho de cada pagina paginada(huashuasuh) objRs.open queryDados ' Sua Consulta está sendo aberta! :O contador = objRs.PageCount ' Aqui é recebido o total de páginas calculada pelo seu BD, essa variável servirá para controle posterior if(pagAtual > contador) then pagAtual = contador 'A página atual nunca poderá ser maior que o total de páginas existentes objRs.AbsolutePage = pagAtual ' Muda o recordSet para a página atual end Sub %> <% sub Listar(obj, pag)'Aqui são(ou é?) listado seus registros 'Modificações devem ser feitas(preferencialmente) no html. 'Tá tá, eu sei que usat tabela é feio, mas fiz isso em 25 minutos 'e nem me liguei que poderia ter usado listas =PpP if Not((obj.Eof) or (obj.Eof)) then While(Not(obj.Eof) and(obj.AbsolutePage = pag)) Response.Write("") For Each campo in obj.Fields %> ") obj.MoveNext Wend else Response.Write("<%=campo.value%> <% Next Response.Write("") end if end sub %> <% Sub ListarColunas(obj) 'Listando as colunas Response.Write(" Dados não inicializados ou não há registros para paginação. ") For each Coluna in obj.Fields %> ") end sub %> <% sub Avancar(pag, cont)'Avançando nas páginas 'Se a pagina atual é menor que o total de páginas, link avançar ativado, senão, desativado if(pag < cont) then %> Avançar <% else %> Avançar <% end if end sub sub Voltar(pag, cont)'Retrocedendo nas páginas 'Parecido com o de Avançar, as o contrário =p if(pag > 1) then %> Voltar <% else %> Voltar <% end if end sub %> <% sub PaginaAtual(pag, obj)'Aqui é exibida a página atual e o total de páginas %> Página <%=pag%>/<%=obj.PageCount%> <% end sub %> <% Sub ListaNumerada(pag, obj)'Gera a lista númerada das páginas, desativando apenas a página atual For i = 1 to obj.PageCount if(i <> pag) then %> &qtd=<%=tamanhoPag%>&txt_nome=<%=buscaNome%>><%=i%> <% else %> <%=i%> <% end if next End Sub %><%=Coluna.Name%> <% Next Response.Write("