Ir para conteúdo

Tutorial De Paginação


Posts Recomendados

Paginação – tutorial completo com detalhes de arquitetura.

 

 

Comentário

 

No final deste tutorial está o script completo relacionado ao tutorial, contém alguns erros que podem ser corrigidos facilmente com o estudo do tutorial.

 

Os jovens programadores em ASP sempre sofrem muito em criar uma arquitetura de programação para seus scripts, em especial paginação, onde os recursos da linguagem ASP parecem limitados e/ou desconhecidos até o momento, uma tarefa para super programadores em ASP no ponto de vista de jovens programadores, um ponto de vista que não representa a realidade, os novatos podem fazer super páginas de buscas em sistemas diversos também, basta entender a arquitetura da programação em ASP e utiliza-la de forma correta e objetiva.

 

 

Resumo

 

Este tutorial aborda de forma prática e objetiva a criação de uma página de paginação que poderá ser utilizada em sistemas diversos para seleção ou de acordo com o projeto em si de cada programador.

 

Buscando solucionar duvidas freqüentes neste tema onde todos os iniciantes em ASP irão ter a oportunidade de aprender a desenvolver, uma oportunidade impar onde muitos descobrem que seu verdadeiro dom é a programação ASP ou não, porém muitos não recebem uma orientação e logo desistem de seus estudos, buscando ajudar estes estudantes este tutorial foi criado com regras e detalhes de raciocínio para que possa transmitir um pouco da essência da arquitetura da programação.

 

 

 

Parte I – Esta parte aborda qual conexão utilizar relacionada ao banco de dados de sua preferência, contendo cinco conexões(MySQL, ACCESS, PGSQL, SQL SERVER INTERBASE) diferentes.

 

Parte II – esta parte aborda a criação da string e/ou seus parâmetros onde irá fornecer informações e/ou conectar as mesmas por intermédio de determinada tecnologia para conexão de banco de dados, manipulando ou modificando de acordo com as necessidades de cada projeto.

 

Parte III – A terceira parte aborda a arquitetura da informação relacionada aos critérios de seleção para a busca em si, fornecendo informações para a string onde executará de acordo casa usuário.

 

Parte IV – aborda a apresentação de informações utilizando loop e restrições para; validar, bloquear, entre outros pontos onde um loop representa parte importante de uma paginação.

 

Parte V – aborda a criação da execução, onde um calculo em especifico é executado e retornará um determinado número de páginas para serem numeradas e organizadas.

 

 

Parte I

 

Muitos programadores confundem as diferentes tecnologias, provocando erros e descuidos que são verdadeiros quebra cabeças em um projeto.

 

Vamos abordar a criação de uma conexão a mais utilizada em testes e projetos em particular; MySQL, onde aprender como criar suas própria conexão ou até simplesmente entender como funciona sua estrutura.

 

 

Iremos iniciar com a conexão MySQL, uns dos bancos de dados mais utilizados em projetos em todo o mundo.

 

A conexão:

 

CODE

<%

Set conexao = Server.CreateObject("ADODB.Connection")

conexao.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};"_

& "SERVER=IP_DO_SERVIDOR;"_

& " DATABASE=NOME_DO_BANCO_DE_DADOS;"_

& "UID=USUÁRIO;PWD=SENHA; OPTION=3"

conexao.Open

%>

 

 

Esta conexão está com quebra de linha para facilitar a visualização, iremos inicializar nossa própria conexão.

 

 

CODE

Set minha_conexão = Server.CreateObject("ADODB.Connection")

 

 

Neste ponto criamos o objetivo da conexão, indica que estamos utilizando a tecnologia ADODB.

 

Quando nomeamos Set com “minha_conexão” indicamos que a referência de Set é “minha_conexão”, esta referência será utilizada de forma generalizada (para a indicação e execução de comandos no servidor indicado em uma segunda etapa desta conexão, a solicitação de conexão direta logo abaixo).

 

CODE

minha_conexão.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};"_

& "SERVER=IP_DO_SERVIDOR;"_

& " DATABASE=NOME_DO_BANCO_DE_DADOS;"_

& "UID=USUÁRIO;PWD=SENHA; OPTION=3"

 

 

Nesta segunda parte da criação desta conexão abordamos os comandos que utilizaremos e os componentes necessários para que a solicitação de conexão com o servidor seja bem sucedida.

 

Abaixo estamos criando uma execução de string, em particular conexão sobre string, está string contém elementos básicos para estabelecer uma conexão física com o servidor indicado é dividido em quatro etapas; driver, servidor, Banco de dados, usuário informações.

 

 

Driver:

CODE

minha_conexão.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};"_

 

 

Servidor:

CODE

& "SERVER=IP_DO_SERVIDOR;"_

 

 

Banco de dados:

CODE

& " DATABASE=NOME_DO_BANCO_DE_DADOS;"_

 

 

Usuário informações:

CODE

& "UID=USUÁRIO;PWD=SENHA; OPTION=3"

 

 

A primeira etapa, driver, orienta a string de conexão a utilizar o driver MySQL ODBC 3.51 Driver, este driver indica a versão do MySQL em particular.

 

A segunda etapa, Servidor, indica a maquina física onde a conexão será solicitada.

 

A terceira etapa, Banco de dados, indica qual banco de dados no servidor utilizando a tecnologia MySQL onde poderá conter vários bancos de dados ou não.

 

A quarta etapa, usuário informações, indica as informações de acesso ao banco de dados indicado na terceira etapa.

 

 

Todas as etapas são finalizadas por um único comando dentro desta coneção, onde permite permanecer a mesma aberta para execuções e comandos SQL e MySQL, segue abaixo o comando.

 

CODE

conexao.Open

 

 

Um comando individual e importantíssimo é o fechamento desta conexão após sua utilização, segue abaixo o comando.

 

CODE

conexao.close

set conexao = nothing

 

 

Este comando é geralmente utilizado ao final de cada execução, em casos de múltiplas execuções onde contem varias strings que efetuam diferentes tarefas em uma página em especifico, sendo incorporado a página de forma individual como no exemplo abaixo:

 

CODE

<%

conexao.close

set conexao = nothing

%>

 

 

Nota:

O projeto contém as cinco mais utilizadas, fica ao seu critério qual conexão utilizar em seus testes e projetos.

 

 

Parte II

 

A segunda parte aborda a criação da conexão da paginação, umas das etapas mais importantes da paginação, onde define informações e filtragem e outros para termos um bom resultado de busca em determinada tabela em um banco de dados, à parte II em quatro etapas onde define com objetividade e clareza os critérios e filtros de busca.

 

 

Primeira etapa:

 

Define o número de itens por página e a string de conexão a tabela de forma primaria, a base relativa aos critérios que podem ser inseridos ou não, segue abaixo a primeira etapa:

 

CODE

<%

Const Pagina_Tamanho = 15

If Request.QueryString("pagina") = "" Then

strPaginaAtual = 1

Else

strPaginaAtual = CInt(Request.QueryString("pagina"))

End If

SQL = "Select * From Produtos Where Ativo='1'"

%>

 

 

 

O script parcial acima cria o critério de paginação em si definindo o método usado para solicitar numerações de páginas onde a ordem de itens é superior ao indicado, iremos dividir por tema o script parcial acima para melhor entendermos, a divisão será em duas temas que são:

 

Entrada e indicação:

 

CODE

Const Pagina_Tamanho = 15

 

 

 

A definição de indicação de números de itens a serem apresentados é pré-definidos utilizando a variável Const, que nada mais é que uma mapeação de variável publica onde pode limitar ou não para um determinado número de itens, neste caso 15 itens.

 

Quando nomeamos Const com “Pagina_Tamanho” indicamos em particular que o mapeamento publico será de 15 itens por página somente, este número poderá ser alterado de acordo com suas necessidades ao seus projetos e/ou testes.

 

 

CODE

If Request.QueryString("pagina") = "" Then

strPaginaAtual = 1

Else

strPaginaAtual = CInt(Request.QueryString("pagina"))

End If

 

 

 

A definição de entrada define qual o meto que será utilizado para obtermos dados utilizando a forma de request.QueryString, umas das formas mais utilizadas em paginação por ser prática e eficiente.

 

Ao optarmos por utilizar QueryString, automaticamente sabemos que toda a arquitetura será feita em uma única página, facilitando o uso de Request de forma objetiva.

 

Neste processo utilizamos a string PaginaAtual como referencia de indicação de número de página a ser apresentado, neste caso usamos If para filtrarmos este critério de uma forma objetiva e pratica, segue abaixo uma explicação lógica:

 

CODE

If Request.QueryString("pagina") = "" Then

 

 

 

No inicio do IF citado acima indicamos que “pagina” representa a indicação a entrada de números de páginas geradas como um todo, 1,2,3,4,5 e assim por diante, ela é a referencia lógica de entrada, o inicio de todo o processo de filtragem.

 

CODE

strPaginaAtual = 1

 

 

Quando usamos a string “PaginaAtual” usamos como ponto de referencia variável para sim ou não, ou seja, uma filtragem onde não deixa margem para que a indicação de entrada “pagina” não esteja vazia, caso esteja vazia o else é executado.

 

CODE

Else

strPaginaAtual = CInt(Request.QueryString("pagina"))

End If

 

 

 

Quando utilizamos else e indicamos a Query diretamente indica que a entra “pagina” não está vazia e executa a mesma diretamente.

 

 

 

 

A string raiz:

 

CODE

SQL = "Select * From Alunos Where Pago='1'"

 

 

 

Esta string SQL é considerada raiz por ser a indicação inicial de critérios para filtragem que podem sofrer novas indicações livremente, estas novas indicações são feitas pelo seguinte método:

 

SQL = SQL & "nova string onde contém somente campos relacionados à tabela Alunos"

 

Este método soma a string raiz, tornando sua filtragem mais rica e de acordo com as novas necessidades.

 

 

 

parte III

 

Utilizando If End IF como filtro de critério onde elimina erros de solicitação, umas das formas mais utilizadas, onde possibilita criar vários IF para melhor atender suas necessidades, as formas são bem comuns, iremos abordar as duas mais utilizadas.

 

A primeira forma.

 

CODE

<%

IF request("page") <> "" THEN

strpage= request("page")

SQL = SQL & " and Ativo='1'and Aluno Like '%"&strpage&"%' or "

SQL = SQL & " Ativo='1' and Serie like '%"&strpage&"%'"

END IF

%>

 

 

Neste IF se usa duas técnicas simples, filtragem por IF e soma de string SQL, muito típicas nestes casos de filtragem com indicação de string soma a strng SQL raiz, onde utilizamos SQL = SQL & " " que somará a string raiz.

 

Utilizando este tipo de filtragem em IF limitamos erros de entrada e tornamos mais robusta a busca e eficaz, utilizando todos os recursos possíveis, com este tipo de recurso podemos tornar a velocidade de busca muito mais eficiente, eliminando o que não foi solicitado, caso o campo “page” que representa “palavra chave” não seja preenchido, automaticamente ele é eliminado na solicitação tornando o script mais robusto e eficiente em termos de execução e velocidade de execução.

 

Uma outra opção de IF muito valida em casos como este é a soma de string SQL direta por IF onde possibilita uma melhor indicação, segue abaixo um exemplo prático.

 

 

CODE

<%

IF request("Telefone ") <> "" THEN

strtelefone= request("Telefone")

SQL = SQL & " and Telefone = '"&strtelefone&"' "

END IF

%>

 

 

Desta forma se pode indicar campo a campo da tabela em caso, possibilitando uma maior arquitetura da informação no formulário da paginação. Da mesma forma ele pode ser solicitado ou não pelo usuário, caso não solicite a string SQL deste if não irá somar a string SQL raiz, contribuindo para uma maior velocidade na execução do script como um todo.

 

 

 

 

Terceira forma:

 

A terceira forma aborda o uso de case em filtragem, umas das formas mais recomendadas em filtragem onde os dados não são flutuantes e sim fixos como; números, datas entre outros que não sofrem atualizações ou alterações pelo sistema, segue abaixo um exemplo pratico:

 

CODE

<%

IF request("Serie")<> "" THEN

 

Select Case (request("Serie"))

Case "1"

SQL = SQL & " and Serie = '1'"

Case "2"

SQL = SQL & " and Serie = '2'"

Case "3"

SQL = SQL & " and Serie = '3'"

End Select

 

END IF

%>

 

 

No exemplo acima vemos uma filtragem por If já abordada, ela possibilita a aviação ou não caso request esteja vazio ou não.

 

 

A case em si, utiliza a mesma técnica de Ifs já mencionados acima, porém a case possibilita o uso de “menu de lista” está forma abre uns dos maiores leques em termos da arquitetura da informação em seu formulário.

 

A case em si usa dos mesmos métodos citados acima, sua única diferença está na construção do menu de lista, que toma uma forma particular e pouco conhecida no ponto de vista iniciante, uma forma de usar Ifs em menu de lista, muito utilizada por programadores experimentes onde busca um melhor resultado, segue abaixo um exemplo de um menu de lista utilizando Ifs para podermos utilizar a case citada acima.

 

CODE

<select name=Serie size=1 class="campo-branco" id="Serie">

<option value="" selected>Indiferente</option>

<option <%IF request("Serie") = "1" THEN%>selected<%END IF%>value="1">Primeira série

<option <%IF request("Serie") = "2" THEN%>selected<%END IF%>value="2">Segunda

série

<option <%IF request("Serie") = "3" THEN%>selected<%END IF%>value="3">Terceira

série

</select>

 

 

Este exemplo representa de forma clara como utilizar Ifs em menu de lista, fácil e pratico em casos de dados fixos e não atualizáveis em um projeto.

 

 

Quarta Forma:

 

 

Contrariando o raciocínio lógico onde a grande maioria dos iniciantes tem o ponto de vista que o induz ao erro, uma forma muito comum de entender onde, quando e qual a melhor forma de criar a conexão onde irá representar a conexão em si da paginação como um todo.

 

Muitos tomam como base pontos simples, porém fundamentas que podem ou não dificultar a finalização do trabalho, os parâmetros desta conexão influenciam em 99% no resultado final do trabalho.

 

Iremos abordar a forma correta de criar está conexão e aprender que criar não é eliminar o necessário e sim manter de forma objetiva. Segue abaixo a parte principal de uma formação de conexão e seus critérios para execução.

 

CODE

<%

Set objAlunos = Server.CreateObject("ADODB.RecordSet")

objAlunos.PageSize = Pagina_Tamanho

objAlunos.CacheSize = Pagina_Tamanho

objAlunos.CursorLocation = 3

objAlunos.Open sql, conexao

strRegistros = objAlunos.RecordCount

strPaginas = objAlunos.PageCount

%>

 

 

Neste script parcial podemos perceber a presença de Set, este Set é diferente do Set da conexão principal onde contém os parâmetros de conexão adequados ao banco de dados em caso, desta forma evitamos uma dupla execução. Tornado mais lento o sistema.

 

 

Podemos perceber também a presença de novos itens na conexão secundária como:

 

PageSize:

Representa o número de itens a serem apresentados por cada página.

 

CacheSize:

Representa o número em cachê gerado por cada página.

 

RecordCount:

Representa o número de registro em determinada tabela.

 

PageCount:

Representa o número de página gerado.

 

São itens fundamentais para uma melhor manipulação e criação da paginação em si, possibilitando indicações individuais ou não.

 

As formas e arquitetura já foram abordas de forma ampla e objetiva anteriormente, o que buscamos informar é a forma correta de criação de uma conexão secundária onde a manipulação de dados torna-se mais flexível.

 

Entender o script acima torna sua lógica mais objetiva e pratica no ponto de vista execução direta.

 

 

 

Parte IV

 

Nesta parte iremos abordar uns dos temas mais complicados para iniciantes, o loop.

 

Contrariando a forma de raciocínio de iniciantes, o loop não é definido pelo números de dados e seu local em especial, ele é definido pela tabel em si, o que você gostaria de repetir e inserir, um ponto importante, loop indica apresentação de dados em serie, porem com informações diferentes, iremos apresentar todas as formas de loop em uma única tabel.

 

Exemplo 1:

Neste exemplo iremos utilizar o loop para duplicarmos somente <TD></TD>, com este loop podendo manipular a apresentação em serie de informações relacionadas.

 

 

CODE

<table width="90%" border="0" cellspacing="0" cellpadding="0">

<tr>

<%If strRegistros = 0 Then %>

<td> </td>

<%Else%>

<%

objAlunos.AbsolutePage = strPaginaAtual

Conta = 0

Do While not objAlunos.EOF And objAlunos.AbsolutePage = strPaginaAtual

Conta = Conta + 1

%>

<td> </td>

<%

objAlunos.MoveNext

Loop

%>

</tr>

</table>

 

 

 

repare que o loop é inicializado depois do <TR> e finalizado antes do </TR>, isto indica que o loop será executado somente em <TD> </TD>. Neste momento podemos manipular melhor a informação, dividindo em partes o <TD> </TD>, formando novos campos dentro deste <TD> </TD> que poderá conter outros dados relacionados.

 

Esta forma de loop é a mais utilizada, porém menos funcional em loops onde necessita de uma melhor manipulação de dados.

 

 

Exemplo 2:

 

Aborda o loop em <TR></TR>, esta forma de loop possibilita um número maior de informações dentro do loop em especial, possibilitando um menu de informação seguido de um loop, ou seja, lista de informações com um topo fixo e com o conteúdo variável.

 

 

CODE

<table width="90%" border="0" cellspacing="0" cellpadding="0">

<%If strRegistros = 0 Then %>

<tr>

<td> </td>

</tr>

<%Else%>

<%

objAlunos.AbsolutePage = strPaginaAtual

Conta = 0

Do While not objAlunos.EOF And objAlunos.AbsolutePage = strPaginaAtual

Conta = Conta + 1

%>

<tr>

<td> </td>

</tr>

<%

objAlunos.MoveNext

Loop

%>

</table>

 

 

este loop é muito usado em e mais funcional em dados onde necessitam de uma melhor arquitetura.

 

 

Exemplo 3:

 

Este exemplo utiliza uma tabel inteira no loop, possibilitando o Maximo em manipulação em dados sobre loop.

 

CODE

<table width="90%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td>

<%If strRegistros = 0 Then %>

<%

response.Write("Dados não encontrados")

%>

<%Else%>

<%

objAlunos.AbsolutePage = strPaginaAtual

Conta = 0

Do While not objAlunos.EOF And objAlunos.AbsolutePage = strPaginaAtual

Conta = Conta + 1

%>

<table width="90%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td> </td>

</tr>

</table>

<%

objAlunos.MoveNext

Loop

%>

</td>

</tr>

</table>

 

 

uma forma muito pratica e eficiente para manipular tabelas inteiras de banco de dados.

 

 

Parte V

 

Esta parte aborda umas das duvidas e dificuldades de iniciantes e avançados em ASP, onde a falta de atenção provoca erros e dificuldades constantes, aprender a criar de forma objetiva a paginação de dados por intermédio de dados fornecidos pela conexão secundária.

 

 

Neste exemplo abaixo podemos ter todos os pontos de uma paginação bem executada, o exemplo irá abordar o funcional e objetivo.

 

Exemplo 4:

 

CODE

<table width="90%" border="0" cellspacing="0" cellpadding="0" align="center">

<tr bgcolor="#FFFFFF">

<% If strPaginaAtual > 1 Then %>

<td width='10%' height="37" align=center valign="middle">

<p class="a9">

<a class=12p href="<%= strEndereco %>?porque=<%=request("porque")%>&pagina=<%=strPaginaAtual-1%>"><font size="-1">Voltar</font></a>

</p>

</td>

<%End If%>

<%If strPaginaAtual < strPaginas Then%>

<td width='76%' align=center><table width="50" border="0" cellspacing="0" cellpadding="4" align="center"><tr bgcolor="#FFFFFF">

<%For I = 1 To strPaginas%>

<%If I = strPaginaAtual Then%>

<td>

<font class=12p>

<b>

<font size="-1" class=a9>

<%=I%>

</font>

</b>

</font>

</td>

<%ELSE%>

<td>

<a class=12a href="<%= strEndereco %>?page=<%=request("page")%>&pagina=<%= I %>"><font size="-1" class=a9><%= I %></font></a>

</td>

<%End If%>

<%Next%>

</tr>

</table>

</td>

<td width='14%' align=center valign="middle">

<a class=12p href="<%= strEndereco %>?pagina=<%=strPaginaAtual+1%>&page=<%=request("page")%>"><font size="-1">Próxima</font></a>

</td>

<%End If%>

<%End If%>

</tr>

</table>

 

 

 

Neste exemplo iremos abordar vários pontos funcionais que será listados e com duas devidas descrições.

 

CODE

<% If strPaginaAtual > 1 Then %>

 

 

Este pondo define se a paginação é necessária ou não, um ponto muito importante onde possibilita uma maior velocidade de apresentação em casos de itens abaixo da mede página.

 

Utilizando um dos recursos da conexão secundária, strPaginaAtual.

 

 

CODE

<a class=12p href="<%= strEndereco %>? page=<%=request("page")%>&pagina=<%=strPaginaAtual-1%>"><font size="-1">Voltar</font></a>

 

 

este ponto é o ponto de retorno, podemos perceber que a um comando onde possibilita esta execução, pagina=<%=strPaginaAtual-1%>, este comando retrocede para menos 1 página.

 

 

CODE

<%End If%>

<%If strPaginaAtual < strPaginas Then%>

 

 

Neste ponto podemos perceber a filtragem de comparação de números de páginas geradas e páginas indicadas, onde strPaginas representa o número de páginas gerados e strPaginaAtual representa a página indicada, possibilitando a avaliação e comparação que se trata de uma única página, eliminando a necessidade de paginação.

 

 

CODE

<%For I = 1 To strPaginas%>

<%If I = strPaginaAtual Then%>

 

 

Neste ponto podemos perceber a geração números de páginas utilizando for to, desta forma podemos gerar um número limitado ou ilimitado de páginas a serem apresentadas após o número.

 

CODE

<%=I%>

 

 

podemos ver o que será indicado dentro Next, o conteúdo em si sta sendo representado por I.

 

 

CODE

<%ELSE%>

<td>

<a class=12a href="<%= strEndereco %>?page=<%=request("page")%>&pagina=<%= I %>"><font size="-1" class=a9><%= I %></font></a>

</td>

<%End If%>

<%Next%>

 

 

 

neste ponto podemos perceber que as informações que foram filtradas utilizam um número de páginas superior a 1, neste caso as informações são repassadas ao link para indicar ao clicar no número de página os parâmetros de busca em si, um exemplo “page” representado por; page=<%=request("page")%>.

 

CODE

<a class=12p href="<%= strEndereco %>?pagina=<%=strPaginaAtual+1%>&page=<%=request("page")%>"><font size="-1">Próxima</font></a>

</td>

<%End If%>

<%End If%>

 

 

 

neste ponto podemos perceber que se trata de uma indicação a próxima página, percebemos a presença de “pagina=<%=strPaginaAtual+1%>” onde indica um movimento para mais.

 

 

 

As duvidas que surgem nesta parte são básica e predominante. Uma delas é de qual forma podemos inserir novos request para indicar novos campos no formulário de busca.

 

Esta duvida é importantíssima, para inserirmos novos critérios de consulta deve entender três pontos:

 

 

Formulário:

 

Ao entender que o formulário trabalha de forma repetitiva, ou seja, usa requst aberto para manter os dados selecionados e alimentar constantemente a string SQL raiz e suas secundárias que somam a raiz.

 

Forma de captura de informações:

 

A forma de captura de informações se da em dois casos destinto; QueryString e Request.

 

 

SQL string:

 

Quando entendemos que as string em SQL são somatórias entre si, podemos entender que uma única string raiz poderá manter o básico para a funcionabilidade do sistema, as string que somam a string raiz são opcionais por seleção.

 

 

Filtragem:

 

Entendendo melhor a filtragem do sistema que se da por ifs e case com alcilio de string SQl somatórias a string SQL raiz, podemos criar e entender melhor a paginação.

 

Ao criar um novo campo no formulário da paginação ele deve ser incluído em todos os processos, segue abaixo um guia para isto.

 

 

Novo campo:

 

Campo de texto;

 

 

Deve-se criar o campo de texto no formulário nomeá-lo (Aluno, um exemplo).

 

CODE

<input name= Aluno id="Aluno" size="25">

 

 

 

Deve-se criar seu critério de filtragem na string SQL secundária. Exemplo:

 

CODE

<%

IF request("Aluno") <> "" THEN

strpage= request("Aluno")

SQL = SQL & " and Aluno = '1'"

END IF

%>

 

 

 

Deve-se declarar o item na paginação, em todos os links de paginação, como uma referência.

 

Inserindo &Aluno=<%=request("Aluno")%> após page=<%=request("page")%>

 

Exemplos:

 

 

Primeiro link:

 

CODE

<a class=12p href="<%= strEndereco %>?page=<%=request("page")%>&Aluno=<%=request("Aluno")%> &pagina=<%=strPaginaAtual-1%>"><font size="-1">Voltar</font></a>

 

 

 

Segundo link:

 

CODE

<a class=12a href="<%= strEndereco %>?page=<%=request("page")%>&Aluno=<%=request("Aluno")%>&pagina=<%= I %>"><font size="-1" class=a9><%= I %></font></a>

 

 

Terceiro link:

 

CODE

<a class=12p href="<%= strEndereco %>?pagina=<%=strPaginaAtual+1%>&page=<%=request("page")%>&Aluno=<%=request("Aluno")%>"><font size="-1">Próxima</font></a>

 

 

O exemplo relacionado a Ifs pode ser utilizado em cases também de forma ampla.

 

 

Espero que o tutorial possa ajudar muitos a entenderem como funciona de forma um pouco detalhada.

 

O nome da página será busca.asp

 

O script:

 

CODE

<!-- Primeira parte -->

<%

'CONEXÃO MySQL

Set conexao = Server.CreateObject("ADODB.Connection")

conexao.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};"_

& "SERVER=IP_DO_SERVIDOR;"_

& " DATABASE=NOME_DO_BANCO_DE_DADOS;"_

& "UID=USUÁRIO;PWD=SENHA; OPTION=3"

conexao.Open

%>

<%

'CONEXÃO ACCESS

diver = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _

Server.MapPath("BANCO_DE_DADOS_NOME.mdb")

set conexao = CreateObject("ADODB.Connection")

conexao.open diver

%>

<%

'CONEXÃO PGSQL

Set conexao = Server.CreateObject("ADODB.Connection")

conexao.ConnectionString = "DRIVER={PostGreSQL};"_

& "SERVER=IP_DO_SERVIDOR;"_

& " DATABASE=NOME_DO_BANCO_DE_DADOS;"_

& "UID=USUÁRIO;PWD=SENHA; OPTION=3"

conexao.Open

%>

<%

'CONEXÃO SQL SERVER

Dim banco_de_dados

banco_de_dados = "Provider=SQLOLEDB; Data Source=IP_DO_SERVIDOR;Network Library=DBMSSOCN; Initial Catalog=<NOME_DO_BANCO_DE_DADOS>; User Id=<USUÁRIO>; Password=<SENHA>"

set conexao = server.createobject ("adodb.connection")

conexao.open banco_de_dados

%>

<%

'CONEXÃO INTERBASE

conexao.ConnectionString = "DRIVER={Firebird/Interbase® driver};"_

& "DBNAME=IP_DO_SERVIDOR:/DIRETÓRIO_FISÍCO/NOME_DO_BANCO_DE_DADOS.gdb;"_

& "UID=USUÁRIO;PWD=SENHA"

conexao.Open

%>

 

<!-- Segunda parte -->

<%

Const Pagina_Tamanho = 15

If Request.QueryString("pagina") = "" Then

strPaginaAtual = 1

Else

strPaginaAtual = CInt(Request.QueryString("pagina"))

End If

SQL = "Select * From Alunos Where Pago='1'"

%>

<%

IF request("page") <> "" THEN

strpage= request("page")

SQL = SQL & " and Pago='1'and Aluno Like '%"&strpage&"%' or "

SQL = SQL & " Pago='1' and Serie like '%"&strpage&"%'"

END IF

%>

 

<%

IF request("Serie")<> "" THEN

Select Case (request("Serie"))

Case "1"

SQL = SQL & " and Serie = '1'"

Case "2"

SQL = SQL & " and Serie = '2'"

Case "3"

SQL = SQL & " and Serie = '3'"

End Select

END IF

%>

<%

Set objAlunos = Server.CreateObject("ADODB.RecordSet")

objAlunos.PageSize = Pagina_Tamanho

objAlunos.CacheSize = Pagina_Tamanho

objAlunos.CursorLocation = 3

objAlunos.Open sql, conexao

strRegistros = objAlunos.RecordCount

strPaginas = objAlunos.PageCount

%>

 

 

<!-- Terceira parte -->

<form name="form1" method="post" action="busca.asp">

<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>

<td width="100">

<div align="center">

<input name=page id="page" size="25">

</div></td>

<td width="100">

<div align="center">

<select name=Serie size=1 class="campo-branco" id="Serie">

<option value="" selected>Indiferente</option>

<option <%IF request("Serie") = "1" THEN%>selected<%END IF%> value="1">Primeira série

<option <%IF request("Serie") = "2" THEN%>selected<%END IF%> value="1">Segunda série

<option <%IF request("Serie") = "3" THEN%>selected<%END IF%> value="1">Terceira série

</select>

</div></td>

<td width="100">

 

<div align="center"></div></td>

<td width="100">

 

<div align="center"></div></td>

</tr>

</table>

</form>

 

<!-- Quarta parte -->

<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>

<td height="51"><div align="center">Titulo1</div></td>

<td><div align="center">Titulo2</div></td>

<td><div align="center">Titulo3</div></td>

<td><div align="center">Titulo4</div></td>

<td><div align="center">Titulo5</div></td>

</tr>

<tr>

<td height="76" colspan="5">

<!-- --------------------------------------------------------------------------------------------------------------- -->

<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">

<%If strRegistros = 0 Then %>

<tr>

<td>Frase onde indica que a busca não encontrou absulutamente nada.</td>

</tr>

<%Else%>

<%

objAlunos.AbsolutePage = strPaginaAtual

Conta = 0

Do While not objAlunos.EOF And objAlunos.AbsolutePage = strPaginaAtual

Conta = Conta + 1

IF Conta = 1 THEN

Cores = "#C9E4E9"

ELSE

Conta = 0

Cores = "#D6F1F8"

END If

End if

%>

<tr>

<td bgcolor="<%=Cores%>">Frase onde indica que a busca encontrou algo relacionado.</td>

</tr>

<%

objAlunos.MoveNext

Loop

%>

</table>

<!-- ---------------------------------------------------------------------------------------------------------- -->

</td>

</tr>

<tr>

<td height="30" colspan="5"><div align="center">Espaço reservado para futuras atualizações do sistema</div></td>

</tr>

</table>

<!-- Quinta parte -->

 

 

<div align="center"></div>

<table width="90%" border="0" cellspacing="0" cellpadding="0" align="center">

<tr bgcolor="#FFFFFF">

<% If strPaginaAtual > 1 Then %>

<td width='10%' height="37" align=center valign="middle">

<p class="a9">

<a class=12p href="<%= strEndereco %>?page=<%=request("page")%>&pagina=<%=strPaginaAtual-1%>"><font size="-1">Voltar</font></a>

</p>

</td>

<%End If%>

<%If strPaginaAtual < strPaginas Then%>

<td width='76%' align=center><table width="50" border="0" cellspacing="0" cellpadding="4" align="center"><tr bgcolor="#FFFFFF">

<%For I = 1 To strPaginas%>

<%If I = strPaginaAtual Then%>

<td>

<font class=12p>

<b>

<font size="-1" class=a9>

<%=I%>

</font>

</b>

</font>

</td>

<%ELSE%>

<td>

<a class=12a href="<%= strEndereco %>?page=<%=request("page")%>&pagina=<%= I %>"><font size="-1" class=a9><%= I %></font></a>

</td>

<%End If%>

<%Next%>

</tr>

</table>

</td>

<td width='14%' align=center valign="middle">

<a class=12p href="<%= strEndereco %>?pagina=<%=strPaginaAtual+1%>&page=<%=request("page")%>"><font size="-1">Próxima</font></a>

</td>

<%End If%>

<%End If%>

</tr>

</table>

 

<%

conexao.close

set conexao = nothing

%>

Editado por Teteeuh
Link para o comentário
Compartilhar em outros sites

Cara, formate o seu tutorial, use

,

. Assim irá deixar ele "[b]bonito[/b]".

[i]O tutorial está bacana para ser aprovado apenas formatando.[/i][/size][/font]

Editado por FezZinN
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...