Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Colunas e Paginação


Alberto Mota
 Share

Question

Consegui resolver as colunas no tópico anterior,

entretanto não consigo fazer a paginação.

Está passando, mostrando todos os registros do select igual ao

problema de um colega nosso onde o Bareta esta auxiliando.

Já revisei todo o script e não consigo resolver:

Abaixo todo o codigo:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%

Set Conn = Server.CreateObject("AdoDb.Connection")

Conn.provider="Microsoft.Jet.OLEDB.4.0"

Conn.connectionstring=Server.Mappath("dados/sistema.mdb")

Conn.open

Set RS = Server.CreateObject("adodb.recordset")

RS.PageSize = 10

contador = 1

maxcol = 3

p = 100 / maxcol

SQL = "select * from produtos where Fornecedor="& 52

RS.Open SQL,Conn,3,3

IF RS.EOF then

Response.Write "nenhum registro encontrado"

Response.End 'paramos o programa

ELSE

'Definindo em qual pagina o visitante está

IF Request.QueryString("pagina")="" then

intpagina=1

ELSE

IF cint(Request.QueryString("pagina"))<1 then

intpagina=1

ELSE

IF cint(Request.QueryString("pagina"))> RS.PageCount then

intpagina=RS.PageCount

ELSE

intpagina=Request.QueryString("pagina")

END IF

END IF

END IF

END IF

RS.AbsolutePage=intpagina

Session("pag_atual") = intpagina

intrec=0

While intrec < RS.PageSize and not RS.EOF

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Catalogo</title>

<link rel="stylesheet" href="css/global2.css">

<link href="estilo.css" rel="stylesheet" type="text/css" />

<link href="menu.css" rel="stylesheet" type="text/css" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

<script src="http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js"></script>

<script src="js/slides.min.jquery.js"></script>

</head>

<body>

<div id="topo">

<p>&nbsp;</p>

</div>

<div id="tudo">

<div id="cabecalho"></div>

<div id="menusup">

<!--#include file="menu.html" -->

</div>

<div id="conteudo">

<div id="dir">

<%

While intrec < rs.PageSize and not RS.EOF

%>

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="97%" id="AutoNumber6">

<tr>

<%

RS.movefirst

while not RS.EOF

if contador <= maxcol then %>

<td width="95"><img

src="catalogo/<% = RS("Referencia") %>.jpg" width="92" height="74" vspace="4"

border="1" /></td>

<td width="717">

&nbsp;<%=RS("Referencia")%><br>

&nbsp;<%=RS("descricao")%>

<BR>&nbsp;Preço:&nbsp;<%=RS("precocusto")%><br />

</td>

<%

contador = contador + 1

else %>

</tr>

<tr> </tr>

<td width="95"><img

src="catalogo/<% = RS("Referencia") %>.jpg" width="93" height="77" vspace="4"

border="1" /></td>

<td>

&nbsp;<%=RS("Referencia")%><br>

&nbsp;<%=RS("descricao")%>

<BR>&nbsp;Preço&nbsp;<%=RS("precocusto")%><br />

</td>

<%

contador = 2

end if

RS.movenext

wend

'completa as colunas

do while contador <= maxcol %>

<td width="22">&nbsp;</td>

<% contador = contador + 1

loop

wend

%>

</tr>

</table>

<%

'RS.movenext

%>

<%

' Acrescenta +1 ao contador

intrec=intrec+1

'Se for EOF (fim de arquivo), imprimir branco na tela

IF RS.EOF then

response.write " "

END IF

Wend 'fim do loop

'Vamos verificar se não é a página 1, para podermos colocar o link “anterior”.

IF intpagina > 1 then

Response.Write "<a href=catalogo.asp?pagina="&intpagina - 1&"&txtforn="&filtro&">Anterior</a>"

%>

<%

END IF

'Se não estivermos no último registro contado, então é mostrado o link p/ a próxima página

IF strcomp(intpagina,RS.PageCount) <> 0 then

'Response.Write "<a href=catalogo.asp?pagina="&intpagina + 1&"&txtforn="&filtro&">&nbsp;Próxima</a>"

Response.Write "<li><a href=catalogo.asp?pagina="&intpagina + 1&"&txtforn="&filtro&">&nbsp;Próxima</a></li>"

'Response.Write "<li><a href='"& sLink &"&pAtual=" & 1 & "'>Primeira</a></li>"

%>

<%

END IF

%>

<br>

Página Atual: <b><% = Session("pag_atual") %></b>

<br>

Número de páginas total: <b><%=RS.PageCount%></b>

<br>

Número de registros por página: <b><%=RS.PageSize%></b>

<br>

Número de registros selecionados: <b><%'=RS.RecordCount%></b>

</div>

<div id="esq">

<div id="clima">

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

</div>

</div>

</div>

<div id="rodape">

<p>

</p>

</div>

</div>

</body>

</html>

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

No codigo anterior existe um while a mais.

Retirei e ainda continua aparecendo todos os registros da paginação.

Comentei alinha 109 onde tem o movenext do codigo original que funciona normalmente.

Abaixo o ultimo codigo. Desde já, obrigado se alguém puder dar uma luz.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%

Set Conn = Server.CreateObject("AdoDb.Connection")

Conn.provider="Microsoft.Jet.OLEDB.4.0"

Conn.connectionstring=Server.Mappath("dados/sistema.mdb")

Conn.open

Set RS = Server.CreateObject("adodb.recordset")

RS.PageSize = 5

contador = 1

maxcol = 3

p = 100 / maxcol

filtro = request.QueryString("codigo")

session("txtforn") = filtro

SQL = "select * from produtos where Fornecedor="& filtro

RS.Open SQL,Conn,3,3

IF RS.EOF then

Response.Write "nenhum registro encontrado"

Response.End 'paramos o programa

ELSE

'Definindo em qual pagina o visitante está

IF Request.QueryString("pagina")="" then

intpagina=1

ELSE

IF cint(Request.QueryString("pagina"))<1 then

intpagina=1

ELSE

IF cint(Request.QueryString("pagina"))> RS.PageCount then

intpagina=RS.PageCount

ELSE

intpagina=Request.QueryString("pagina")

END IF

END IF

END IF

END IF

RS.AbsolutePage=intpagina

Session("pag_atual") = intpagina

intrec=0

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Catalogo</title>

<link rel="stylesheet" href="css/global2.css">

<link href="estilo.css" rel="stylesheet" type="text/css" />

<link href="menu.css" rel="stylesheet" type="text/css" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

<script src="http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js"></script>

<script src="js/slides.min.jquery.js"></script>

</head>

<body>

<div id="topo">

<p>&nbsp;</p>

</div>

<div id="tudo">

<div id="cabecalho"></div>

<div id="menusup">

<!--#include file="menu.html" -->

</div>

<div id="conteudo">

<div id="dir">

<br>

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="97%" id="AutoNumber6">

<tr>

<%

While intrec < rs.PageSize and not RS.EOF

%>

<%

'---------------------------------------------------------------------------

RS.movefirst

while not RS.EOF

if contador <= maxcol then %>

<td width="95"><img

src="catalogo/<% = RS("Referencia") %>.jpg" width="92" height="74" vspace="4"

border="1" /></td>

<td width="717">

&nbsp;<%=RS("Referencia")%><br>

&nbsp;<%=RS("descricao")%>

<BR>&nbsp;Preço:&nbsp;<%=RS("precocusto")%><br />

</td>

<%

contador = contador + 1

else %>

</tr>

<tr></tr>

<td width="95"><img

src="catalogo/<% = RS("Referencia") %>.jpg" width="93" height="77" vspace="4"

border="1" /></td>

<td>&nbsp;<%=RS("Referencia")%><br>

&nbsp;<%=RS("descricao")%>

<BR>&nbsp;Preço&nbsp;<%=RS("precocusto")%><br />

</td>

<%

contador = 2

end if

RS.movenext

wend

'completa as colunas

do while contador <= maxcol %>

<td width="22">&nbsp;</td>

<% contador = contador + 1

loop

wend

%>

</tr>

<%

'RS.movenext

%>

</table>

<%

' Acrescenta +1 a contagem

intrec=intrec+1

'Se for EOF (fim de arquivo), imprimir branco na tela

IF RS.EOF then

response.write " "

END IF

'wend'fim do loop

%>

<%

'Vamos verificar se não é a página 1, para podermos colocar o link “anterior”.

IF intpagina > 1 then

Response.Write "<a href=catalogo.asp?pagina="&intpagina - 1&"&codigo="&filtro&">Anterior</a>"

%>

<%

END IF

'Se não estivermos no último registro contado, então é mostrado o link p/ a próxima página

IF strcomp(intpagina,RS.PageCount) <> 0 then

'Response.Write "<a href=catalogo.asp?pagina="&intpagina + 1&"&txtforn="&filtro&">&nbsp;Próxima</a>"

Response.Write "<li><a href=catalogo.asp?pagina="&intpagina + 1&"&codigo="&filtro&">&nbsp;Próxima</a></li>"

'Response.Write "<li><a href='"& sLink &"&pAtual=" & 1 & "'>Primeira</a></li>"

%>

<%

END IF

%>

<br>

Página Atual: <b><% = Session("pag_atual") %></b>

<br>

Número de páginas total: <b><%=RS.PageCount%></b>

<br>

Número de registros por página: <b><%=RS.PageSize%></b>

<br>

Número de registros selecionados: <b><%=RS.RecordCount%></b>

</div>

<div id="esq">

<div id="clima">

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

</div>

</div>

</div>

<div id="rodape">

<p>

</p>

</div>

</div>

</body>

</html>

Link to comment
Share on other sites

  • 0

Desculpem a insistência no tópico.

Simplifiquei o codigo e continua sem paginação,

mostram todos os registros

e no fim o link proxima.

Comentei o movenext de um codigo de paginação que estava ok e apenas assim o codigo roda,

mas sem paginação.

Estou certamente apanhando no loop.

Se alguém puder ajudar, agradeço

Segue o codigo modificado:

<%

intrec=0

While intrec < rs.PageSize and not RS.EOF

%>

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="96%" id="AutoNumber6">

<tr>

<td width="121" >

<%

x=1

colunas = 3

for i = 1 to 10

do while not rs.eof

%>

<img

src="catalogo/<% = RS("Referencia") %>.jpg" width="85" height="90" vspace="4"

border="1" /></td>

<td width="627">

&nbsp;Ref.:&nbsp;<%=RS("Referencia")%><br>

&nbsp;<%=RS("descricao")%>

<BR>

&nbsp;Preço:&nbsp;<%=RS("precocusto")%><br>

</td>

<% if x < colunas then

response.write "</td><td>"

x = x + 1

else

response.write "</td></tr><td>"

x = 1

end if

%>

<%

rs.movenext

loop

next

'------------Fim colunas

%>

<td></td></tr>

<%

'rs.movenext

%>

</table>

<%

intrec=intrec+1

IF RS.EOF then

response.write " "

END IF

Wend

IF intpagina > 1 then

Response.Write "<a href=catalogo.asp?pagina="&intpagina - 1&"&codigo="&filtro&">Anterior</a>"

%>

<%

END IF

IF strcomp(intpagina,RS.PageCount) <> 0 then

Response.Write "<li><a href=catalogo.asp?pagina="&intpagina + 1&"&codigo="&filtro&">&nbsp;Próxima</a></li>"

%>

<%

END IF

%>

Link to comment
Share on other sites

  • 0

Consegui fazer as colunas e a paginação ao mesmo tempo.

Entretanto estou esbarrando em algo que tentei e não consegui.

Ao clicar no link Proxima ele mostra 5 registros apenas e não outros novos 35

no page.size esta como 5, porem tenho 7 colunas.

Faz a paginação levando em consideração o page.size

Infelizmente não detectei a solução.

Segue o script atual, e agradeço a quem puder ajudar, antecipadamente:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%

filtro = request.QueryString("representada")

session("rep") = filtro

%>

<%

Set Conn = Server.CreateObject("AdoDb.Connection")

Conn.provider="Microsoft.Jet.OLEDB.4.0"

Conn.connectionstring=Server.Mappath("dados/Zole_be.mdb")

Conn.open

Set RS = Server.CreateObject("adodb.recordset")

RS.PageSize = 5 'conta como linhas

SQL = "select * from produtos where Fornecedor="& session("rep")

RS.Open SQL,Conn,3,3

IF RS.EOF then

Response.Write "nenhum registro encontrado"

Response.End 'paramos o programa

ELSE

'Definindo em qual pagina o visitante está

IF Request.QueryString("pagina")="" then

intpagina=1

ELSE

IF cint(Request.QueryString("pagina"))<1 then

intpagina=1

ELSE

IF cint(Request.QueryString("pagina"))> RS.PageCount then

intpagina=RS.PageCount

ELSE

intpagina=Request.QueryString("pagina")

END IF

END IF

END IF

END IF

RS.AbsolutePage=intpagina

Session("pag_atual") = intpagina

%>

<% if rs.eof then %>

<span class="style5">não foi encontrado nenhum registro</span>

<% else %>

<table width="100%" cellspacing="10" style="border:0px">

<%' Do While NOT rs.EOF %>

<%

do while not rs.EOF and intrec < rs.PageSize

intrec = intrec + 1

%>

<tr align="center">

<% j = 1

Do While J < 8 AND NOT rs.EOF %>

<td valign="middle" width="203" align="center">

<a href="detalhe.asp?codigo=<% = RS("referencia") %>"><img

src="catalogo/<% = RS("referencia") %>.jpg" width="85" height="63" class="normal" vspace="4"

border="1" /></a><br>

<% = RS("Referencia") %>

</td>

<%

j = j + 1

rs.MoveNext

LOOP

%>

</tr>

<%

LOOP

%>

</table>

<%end if%>

</td>

</tr>

<tr>

<td colspan="3" id="Dados"></td>

<td width="298" id="Dados">

<%

'Criamos as Validações para a navegação "Anterior" e "Próximo"

if intpagina>1 then

Response.write "<a href=catalogo.asp?pagina="&intpagina - 1&"&representada="&filtro&">Anterior&nbsp;</a>"

end if

if StrComp(intpagina,rs.PageCount)<>0 then

Response.write "<a href=catalogo.asp?pagina="&intpagina + 1&"&representada="&filtro&">Próxima</a>"

%>

<%

end if

%>

<br>

Página Atual: <b><% = Session("pag_atual") %></b>

<br>

Número de páginas total: <b><% =Cint(RS.PageCount / 7) %></b>

<br>

Número de registros por página: <b><%=RS.PageSize * 7 %></b>

<br>

Número de registros selecionados: <b><%=RS.RecordCount%></b>

<br><%response.Write(intrec)%>

</td>

</tr>

</table>

Link to comment
Share on other sites

  • 0

Finalmente consegui obter sucesso.

Estava na variavel intrec.

se não houvessem colunas interec + 1 estaria correto

Segue abaixo para quem precisar um dia, paginação e colunas redondinhas.

Um abraço

--------------------

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
filtro = request.QueryString("representada")
session("rep") = filtro
%>
<% 
Set Conn = Server.CreateObject("AdoDb.Connection") 
Conn.provider="Microsoft.Jet.OLEDB.4.0" 
Conn.connectionstring=Server.Mappath("dados/bd.mdb") 
Conn.open 
Set RS = Server.CreateObject("adodb.recordset")
RS.PageSize = 42 'conta como linhas / quantidade de registros por pagina

SQL = "select * from produtos where Fornecedor="& session("rep")
RS.Open SQL,Conn,3,3
IF RS.EOF then 
Response.Write "nenhum registro encontrado"
Response.End 'paramos o programa
ELSE
IF Request.QueryString("pagina")="" then 
intpagina = 1
ELSE
IF cint(Request.QueryString("pagina"))<1 then
intpagina = 1 
ELSE
IF cint(Request.QueryString("pagina"))> RS.PageCount then 
intpagina=RS.PageCount 
ELSE
intpagina=Request.QueryString("pagina")
END IF
END IF
END IF
END IF
RS.AbsolutePage=intpagina
Session("pag_atual") = intpagina
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<head>
<title>Catalogo</title>
<link rel="shortcut icon" type="image/ico" href="images/icone.ico" />    
<link rel="stylesheet" href="css/global2.css">
<link href="estilolink.css" rel="stylesheet" type="text/css" />
<link href="menu.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="css/screen.css" type="text/css" media="screen" />
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script src="http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js"></script>
<script>
$(document).ready(function(){
// hide #back-top first
    $("#back-top").hide();
    
    // fade in #back-top
    $(function () {
        $(window).scroll(function () {
            if ($(this).scrollTop() > 100) {
                $('#back-top').fadeIn();
            } else {
                $('#back-top').fadeOut();
            }
        });

        // scroll body to 0px on click
        $('#back-top a').click(function () {
            $('body,html').animate({
                scrollTop: 0
            }, 800);
            return false;
        });
    });

});
</script>
<style>
/*
Back to top button 
*/
#back-top {
    position: fixed;
    bottom: 30px;
    /* margin-left: -150px; */
    margin-left: 900px;
}
#back-top a {
    width: 108px;
    display: block;
    text-align: center;
    font: 11px/100% Arial, Helvetica, sans-serif;
    text-transform: uppercase;
    text-decoration: none;
    color: #bbb;
    /* background color transition */
    -webkit-transition: 1s;
    -moz-transition: 1s;
    transition: 1s;
}
#back-top a:hover {
    /* background: url(setacima.png) no-repeat center center; */
}
/* arrow icon (span tag) */
#back-top span {
    width: 108px;
    height: 108px;
    display: block;
    margin-bottom: 7px;
    background: url(setacima2.png) no-repeat center center;
    /* background: #ddd url(up-arrow.png) no-repeat center center; */
    /* rounded corners */
    -webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    border-radius: 15px;
    /* background color transition */
    -webkit-transition: 1s;
    -moz-transition: 1s;
    transition: 1s;
}
#back-top a:hover span {
   background: url(setacima.png) no-repeat center center; 
}
</style>
</head>
<body>
<div id="topo">
<p>&nbsp;</p>
</div>
<div id="tudo">
<div id="cabecalho"></div>
<div id="menusup">
<!--#include file="menu.html" -->
</div>
<div id="conteudocat">
<br>
<div id="espacocat">
<table width="100%" cellspacing="10" style="border:0px">
<%
intrec = 0
do while not rs.EOF and intrec  < rs.PageSize  
intrec = intrec + 8
%>
<tr>
<% j = 1
Do While J < 8 AND NOT rs.EOF %>
<td align="center">
<a href="detalhe.asp?codigo=<% = RS("Referencia") %>"><img 
src="catalogo/<% = RS("Referencia") %>.jpg" width="85" height="63" class="normal" vspace="4"
border="1" /></a><br><% = RS("Referencia") %>
</td>
<%
j = j + 1
rs.MoveNext
LOOP
%>
</tr>
<% 
LOOP
%>
</table>
<table width="100%" cellspacing="0" style="border:0px">
<td width="217"></td>
</tr>
<tr>
<td></td>
<td>
<% 
    if intpagina > 1 then 
    Response.write "<a href=catalogo.asp?pagina="&intpagina - 1&"&representada="&filtro&">Anterior&nbsp;</a>"
    end if
    if StrComp(intpagina,rs.PageCount)<> 0 then   
    Response.write "<a href=catalogo.asp?pagina="&intpagina + 1&"&representada="&filtro&">Próxima</a>"
    %>
    <%
    end if
    %>
    <br> 
Página Atual: <b><% = Session("pag_atual") %></b> 
<br> 
Número de páginas total: <b><% =Cint(RS.PageCount) %></b> 
<br> 
Número de registros por página: <b><%=RS.PageSize%></b> 
<br> 
Número de registros selecionados: <b><%=RS.RecordCount%></b> 
</td>
</tr>
</table> 
</div>
<br>
</div>
<div id="rodapeant">
</div>
<p id="back-top">
<a href="#top"><span></span>Voltar ao Topo</a>
    </p>
</div>
</body>
</html>
<%
rs.close
set rs = nothing
%>

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.4k
×
×
  • Create New...