Con il codice sotto riportato realizzo un sistema di paginazione, tutto funziona perfettamente, tranne che per un problema nella validazione.
Se non riempio tutti i campi del form di ricerca, la query prende dei parametri di default. In questo modo però il link della paginazione si porta dietro alcuni parametri vuoti, generando un'errore di validazione della pagina, anche se il sistema funziona correttamente. Qualche suggerimento?
<%@LANGUAGE="VBSCRIPT"%>
<%
'Numero di record visualizzati per pagina
Record_Pagina = 3
'Numero di Pagine visualizzate nei link
Numerazione_Max = 6
Dim Rec__varfdata1, Rec__varfdata2, Rec__oggetto, Rec__appalto, Rec__gara
Rec__varfdata1 = "01/01/2000"
If (Request("f_datas") <> "") Then
Rec__varfdata1 = Request("f_datas")
End If
Rec__varfdata2 = "31/12/2010"
If (Request("f_datas2") <> "") Then
Rec__varfdata2 = Request("f_datas2")
End If
Rec__oggetto = "'%%'"
If (Request("f_oggetto") <> "") Then
Rec__oggetto ="'%"&Request("f_oggetto")&"%'"
End If
Rec__appalto = "idappalto between 0 and 9999"
If (Request("f_appalto") <> "") Then
Rec__appalto ="idappalto="&Request("f_appalto")
End If
Rec__gara = "idgara between 0 and 9999"
If (Request("f_gara") <> "") Then
Rec__gara ="idgara="&Request("f_gara")
End If
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open (MM_conn_bandi_STRING)
sql = "SELECT * FROM bandi where scadenza between #"+ Rec__varfdata1 +"# and #" + Rec__varfdata2 +"# and oggetto like "+Rec__oggetto+" and "+Rec__appalto+" and "+Rec__gara+" Order by scadenza desc"
Set Rec = Server.CreateObject ("ADODB.Recordset")
Rec.PageSize = Record_Pagina
Rec.Open sql, Conn, 3, 3
'Recupero il numero della pagina corrente
Pag = CInt(Request.Querystring("pag"))
'Controllo che il numero di pagina sia corretto
If (Not Rec.Eof) Then
If Pag>Rec.PageCount Then
Pag = Rec.PageCount
End If
If Pag = 0 Then
Pag = 1
End If
'Setto la pagina corrente
Rec.AbsolutePage = Pag
Rec_total = Rec.Recordcount
'Ora prepariamo i link alle pagine
indice_inizio = pag-(Numerazione_Max/2)
If (indice_inizio>(Rec.PageCount-Numerazione_Max)) Then
indice_inizio = Rec.PageCount-Numerazione_Max+1
End If
If (indice_inizio<=0) Then
indice_inizio = 1
End if
indice_fine=indice_inizio+Numerazione_Max-1
If (indice_fine>Rec.PageCount) Then
indice_fine = Rec.PageCount
End If
'Link alla prima pagina
Link = "« |"
'Link alle pagine precedenti
If (indice_inizio<>1) Then
Link=Link&" precedente |"
End If
For i=indice_inizio to indice_fine
'Pagina attuale
If (i=pag) then
Link = Link&" [ "&i&" ] "
'Link alle altre pagine
Else
Link = Link&"[ "&i&" ] | "
End If
Next
'Link alle pagine successive
If (indice_fine<Rec.PageCount-1) Then
Link = Link&" succesiva | "
End If
'Link all'ultima pagina
Link=Link&" » "
End If
%>

Rispondi quotando