non fa ESATTAMENTISSIMAMENTE quello che chiedi, però è adattabile:
codice:
'per stampare il menu numerico delle pagine
function stampaPagine(totPagine,attuale)
dim max,lstart,tstart,txt,nxt,bxt,totale
totale=totPagine
dim href_class,var_page,selected_class,separatore
'*********************** SETTINGS
max=5 'numero di link visualizzati contemporaneamente
href_class="" 'classe da applicare al link dei collegamenti
var_page="pagina" 'variabile in querystring con il numero di pagina richiesta
selected_class="" 'classe per la pagina selezionata
separatore=" - " 'separatore dei numeri
'*********************** END SETTINGS
if totale<= max then
lstart=1
tstart=totale
else
mtp=int(attuale/max)
lstart=max*(mtp)
tstart=lstart+max
end if
if attuale>1 then
bxt=attuale-1
txt=txt & "<<"
txt=txt & " < "
end if
if lstart=0 then lstart=1
if tstart>totale then tstart=totale
for i=lstart to tstart
if i>lstart then txt=txt & separatore
if i=attuale then
txt=txt & "<span class=""" & selected_class & """>" & i & "</span>"
else
txt=txt & " " & i & ""
end if
next
nxt=attuale+1
if nxt>totale then nxt=totale
if nxt>=lstart and totale>1 and nxt<totale then txt=txt & " >"
if totale>1 and totale>nxt then txt=txt & " >>"
stampaPagine=txt
end function
'ricavo la pagina attuale
dim pagina_attuale
pagina_attuale=request.QueryString("pagina")
if len(trim(pagina_attuale))=0 then
pagina_attuale=1
else
pagina_attuale=cint(pagina_attuale)
end if
'numero di pagine totali
dim num_page_totali
num_page_totali=40
response.Write stampaPagine(num_page_totali,pagina_attuale)