Newsgroup: it.comp.www.asp
Titolo: Problema paginazione risultati

Salve, qualcuno mi puo' dire dove sta l'errore in questo listato? Il
problema e' che quando premo il tasto "Succ." per vedere i risultati della
pagina successiva, la pagina non cambia e rimane bloccata su "Pagina 1":
Ciao a tutti, come va? Ho qualche problemino a visualizzare i risultati di
una ricerca divise per pagine. Il passaggio da una pagina all'altra viene
effettuato tramite bottoni di una form
(Primo-Precedente-Succcessivo-Ultimo). Il problema, e' che dopo aver
visualizzato la prima pagina, premendo su successivo, la pagina sembra
cambiare per un attimo, tanto che compare la scritta "Pagina 2", poi torna
subito su Pagina 1. Di seguito posto il codice della pagina Results.asp che
e' la pagina "incriminata" sperando di poter trovare un valido aiuto per
risolvere questo problema che ormai e' diventato un vero incubo...  :~( :
<%@ Language=VBScript %>
<%
'---------------------------------------------------------------------------
-----------------
' PageDB1.asp
' Window to display a page of query result.
'---------------------------------------------------------------------------
-----------------
%>
<% Option Explicit %>
<!-- #include file="Adovbs.inc" -->
<%
DIM Cerca
Dim Goldrake
Goldrake = Request.Querystring("CampoRicerca")
Cerca = Request.Querystring("Marca")
%>
<%
Function LinkURL(mfieldcontent)
Dim objRegExp, strTemp
Set objRegExp = New RegExp
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "(\b(www\.|http\://)\S+\b)"
strTemp = objRegExp.replace(mfieldcontent, "<A HREF='http://$1'
TARGET='_new'>$1</A>")
LinkURL = Replace(strTemp, "http://http://","http://")
Set objRegExp = Nothing
End Function
%>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<TITLE> Scrollable data display section </TITLE>
<link rel="StyleSheet" href="../../default.css" type="text/css">
<meta HTTP-EQUIV="Content-Type" content="text/html; charset=ISO-8859-1">
<STYLE> {FONT-FAMILY="Sans Serif"} </STYLE>
</HEAD>
<BODY BGCOLOR="#006600" TOPMARGIN=5 text="#FFFFFF" style="color: #FFFFFF;
font-weight: bold">
<!-- #include file="BATSRC.inc" -->
<%
   Response.Buffer=True
   On Error Resume Next
%>
<%
   mPageNo = 1
      ' Where there to begin the recordset
   objRS.AbsolutePage = mPageNo
%>
<%
   IF mPageCount > 1 Then
        mPageNo = Request.Form("RefPageNo")
        If mPageNo <> "" Then
            mPageNo = Cint(mPageNo)
        Else
            mPageNo = 1
        End If
   Else                                ' First run, then no buttons
        mPageNo = 1
   End If
      ' Where there to begin the recordset
   objRS.AbsolutePage = mPageNo
%>
<p>
<BR>
<FORM NAME="UpdPage" TARGET="inferioredx" ACTION="Results.asp" METHOD="GET">
<TABLE COLS="3" BORDER="0" WIDTH="100%">
<TR>
<TD ALIGN=Left><B>
<DIV ID = 'PageNoFlag'><font color="#FFCC00">Pagina <% =Cstr(mPageNo) %>  di
<% =Cstr(mPageCount) %></B></font></DIV>
</TD>
<TD ALIGN=CENTER>
<INPUT TYPE="HIDDEN" NAME="RefPageNo" VALUE="<%=cstr(mPageNo)%>">
<INPUT TYPE="HIDDEN" NAME="RefPageCount" VALUE="<%=cstr(mPageCount)%>">
<INPUT TYPE="HIDDEN" NAME="CampoRicerca"
VALUE="<%=Request.QueryString("CampoRicerca")%>">
<INPUT TYPE="HIDDEN" NAME="Marca" VALUE="<%=Request.QueryString("Marca")%>">
<% If mPageCount = 1 Then %>
<INPUT TYPE="SUBMIT" NAME="OfFirst" VALUE="Primo" STYLE="position: RELATIVE;
background-color: #009933; color: #000000; font-weight: bold; border-style:
double; border-color: #FFCC00" DISABLED="True">
<INPUT TYPE="SUBMIT" NAME="OfPrevious" VALUE="Prec." STYLE="position:
RELATIVE; background-color: #009933; color: #000000; font-weight: bold;
border-style: double; border-color: #FFCC00" DISABLED="True">
<INPUT TYPE="SUBMIT" NAME="OfNext"  VALUE="Succ." STYLE="position: RELATIVE;
background-color: #009933; color: #000000; font-weight: bold; border-style:
double; border-color: #FFCC00" DISABLED="True">
<INPUT TYPE="SUBMIT" NAME="OfLast"  VALUE="Ultimo" STYLE="position:
RELATIVE; background-color: #009933; color: #000000; font-weight: bold;
border-style: double; border-color: #FFCC00" DISABLED="True">
<% ElseIf mPageCount = 2 Then %>
<INPUT TYPE="SUBMIT" NAME="OfPrevious" VALUE="Prec." STYLE="position:
RELATIVE; background-color: #009933; color: #000000; font-weight: bold;
border-style: double; border-color: #FFCC00" ONCLICK="UpdPageNo(2)">
<INPUT TYPE="SUBMIT" NAME="OfNext"  VALUE="Succ." STYLE="position: RELATIVE;
background-color: #009933; color: #000000; font-weight: bold; border-style:
double; border-color: #FFCC00" ONCLICK="UpdPageNo(3)">
<% ElseIf mPageCount > 2 Then %>
<INPUT TYPE="SUBMIT" NAME="OfFirst" VALUE="Primo" STYLE="position: RELATIVE;
background-color: #009933; color: #000000; font-weight: bold; border-style:
double; border-color: #FFCC00" ONCLICK="UpdPageNo(1)">
<INPUT TYPE="SUBMIT" NAME="OfPrevious" VALUE="Prec." STYLE="position:
RELATIVE; background-color: #009933; color: #000000; font-weight: bold;
border-style: double; border-color: #FFCC00" ONCLICK="UpdPageNo(2)">
<INPUT TYPE="SUBMIT" NAME="OfNext"  VALUE="Succ." STYLE="position: RELATIVE;
background-color: #009933; color: #000000; font-weight: bold; border-style:
double; border-color: #FFCC00" ONCLICK="UpdPageNo(3)">
<INPUT TYPE="SUBMIT" NAME="OfLast"  VALUE="Ultimo" STYLE="position:
RELATIVE; background-color: #009933; color: #000000; font-weight: bold;
border-style: double; border-color: #FFCC00" ONCLICK="UpdPageNo(4)">
<% End If %>
</TD>
<TD ALIGN=Right>
<B><font color="#FFCC00">Numero Prodotti trovati:&nbsp;
<%=Cstr(mRecordCount)%></B></font>
</TD>
</TR>
</TABLE>
</FORM>
<SCRIPT Language="VBScript">
<!--
   Function UpdPageNo(inNum)
      Dim Pg, PgVal, ctn, ctnVal
      '
Pg=Parent.Frames("inferioredx").Document.Forms(0).Elements("RefPageNo").Valu
e
       Pg=Document.Forms(0).Elements("RefPageNo").Value
      PgVal = Cint(Pg)
     '
Ctn=Parent.Frames("inferioredx").Document.Forms(0).Elements("RefPageCount").
Value
       Ctn=Document.Forms(0).Elements("RefPageCount").Value
      ctnVal = Cint(ctn)
      IF inNum = 1 Then
          PgVal = 1
      ElseIf inNum = 2 Then
          PgVal = PgVal -1
          IF PgVal < 1 Then
              PgVal = 1
          End If
      ElseIf inNum = 3 Then
          PgVal = pgval+1
          IF PgVal > ctnVal Then
              PgVal = ctnVal
          End If
      ElseIf inNum = 4 Then
          PgVal = ctnVal
      End If
'Parent.Frames("inferioredx").Document.Forms(0).Elements("RefPageNo").Value
= Cstr(PgVal)
       Document.Forms(0).Elements("RefPageNo").Value = Cstr(PgVal)
 document.all("PageNoFlag").innerText  = "Pagina " & Cstr(PgVal) & " di " &
Cstr(ctnVal)
End Function
//-->
</SCRIPT>
<TABLE CELLPADDING=6 CELLSPACING=0 BORDER=1 WIDTH=100% text="#FFFFFF"
style="color: #FFCC00; font-weight: bold; font-family: Arial; font-size: 10
pt">
<THEAD>
<%   ' Write headings using field names
    For Each Item in objRS.Fields
%>
      <TH><%= Item.Name %></TH>
<%  Next
%>
</THEAD>
<%    ' Write records, limited by records available and the page size.
    j = mPageSize
    Do While Not objRS.EOF And j > 0
%>
<TR>
<%        For i = 0 to mFieldCount-1
               mFieldType = objRS.Fields(i).Type
                   ' Avoid "3" mistakenly excluded when mExcludeFieldTypes
has "123".
               If Len(mFieldType) < 3 Then
                    mFieldType = mFieldType & "XX"
               End If
                   ' Avoid fields such as binary
               If InStr(mExcludeFieldTypes, mFieldType) = 0 Then
                    mFieldContent = objRS.Fields(i)
                    IF TRIM(mFieldContent)= "" or mFieldContent = Null then
                             ' Avoid broken grids
%>
                         <TD style="color: #FFFFFF; font-size: 8 pt">-</TD>
            <%
                    Else
                  IF  mFieldContent = "-" then
     Response.write ("-")
     End if %>
    <%  if mFieldContent <> "-" then%>
    <TD style="color: #FFFFFF; font-size: 8 pt"> <%=
(LinkUrl(mfieldcontent)) %></TD>
         <% End if %>
<%
      End if
               End If
  Next
%>
</TR>
<%
        j = j - 1
        objRS.MoveNext
    Loop
%>
</TABLE>
</FORM>
</BODY>
</HTML>
<%
    objRS.Close
    Set objRS = Nothing
    Set cmdConn = Nothing
    objConn.Close
    Set objConn = Nothing
    Response.End
%>
Grazie 1000 per tutto l'aiuto che vorrete darmi
Ciao.
Roberto

 </SCRIPT>
Ho segato un pò di codice della function updPageNo, che è la funziona 
chiamata alla pressione di qualsiasi pulsante attivo.
Chiariscimi subito un dubbio.
Da quello che vedo, in questa funzione non c'e' nessuna chiamata a qualche 
altra pagina (o alla pagina stessa, magari passandole qualche parametro 
particolare), per cui penso che tu carichi i dati tutti in questa pagina in 
qualche variabile e poi li rendi visibili quando di preme un tasto.
E' così ?
Se è così, allora perchè non listare tutti i dati tutti in un sol colpo 
visto che li hai dovuti scaricare comunque tutti e hai fatto attendere il 
navigatore.
Se non è così, dov'e' la chiamata per far andare il browser su un'altra 
pagina o sulla stessa magari con qualche parametro particolare ?
Ciao,
        Fabrizio

Ciao, alla fine sono riuscito a risolvere il problema, giusto 2 minuti fa!
:-)
1) ho cambiato la proprieta del form di ricerca da Get a Post
2) la stessa cosa ho fatto con il form dei bottoni della paginazione
3) ho sostituito il seguente codice:
<%
DIM Cerca
Dim Goldrake
Goldrake = Request. querystring("CampoRicerca")
Cerca = Request.querystring("Marca")
%>
Con :
<%
DIM Cerca
Dim Goldrake
Goldrake = Request("CampoRicerca")
Cerca = Request("Marca")
%>
4) ho sostituito:
<INPUT TYPE="HIDDEN" NAME="CampoRicerca"
VALUE="<%=Request.querystring("CampoRicerca")%>">
<INPUT TYPE="HIDDEN" NAME="Marca" VALUE="<%=Request.querystring("Marca")%>">
con:
<INPUT TYPE="HIDDEN" NAME="CampoRicerca"
VALUE="<%=Request("CampoRicerca")%>">
<INPUT TYPE="HIDDEN" NAME="Marca" VALUE="<%=Request("Marca")%>">
Ciao.