Voglio contribuire a chi sviluppa in ASP e ha bisogno di eseguire paginazione indietro alle pagine chiamanti, con un mio piccolo script che uso nei miei progetti ASP.
Supponiamo di avere il programma ASP di partenza di una applicazione per esempio
il file Login.asp che ci permette di eseguire il login e aprire l'applicazione nella quale si vuole navigare.
Allora nelle prime righe ASP della prima pagina applicativa per esempio il file
"Index.asp"
Questa variabile di sessione verrà sempre inizializzata al passaggio della pagina index.asp...
dim ThisProgram, formname
ThisProgram="Index.asp"
formname=left(ThisProgram, len(ThisProgram) - 4)
Session("NAVPAGE")=ThisProgram&";"
una volta che dal menu si selezioni una pagina nodo di primo livello per esempio la lista degli articoli, basterà includere nella pagina di lista a inizio asp questa include per avere in automatico la possibilità software di tornare a pagina precedente via Javascript. vediamo come
Questo è lo script da includere che io chiamo "nav_web.asp" e che verra incluso in ogni pagina chiamata via via che si vadi in profondita dei nodi.
nel file lista articoli avremo in testa al file asp queste istruzioni<%
'Sviluppato da V.M. - Fonte Nuova (RM) Italy 2013
' NAVPAGE contiene i nomi di file completi .asp separati da ; ... è un vettore di navigazione tra pagine
Dim vet, NAVPAGE, menu, PreviousPage
menu="index.asp"
Session("NAVPAGE") = Session("NAVPAGE") & ThisProgram & ";"
NAVPAGE = Session("NAVPAGE")
vet=split(NAVPAGE,";")
for i=0 to ubound(vet)
if vet(i)=ThisProgram then
PreviousPage=vet(i - 1)
k=i
exit for
end if
next
Session("NAVPAGE")=""
for i=0 to k
Session("NAVPAGE") = Session("NAVPAGE") & vet(i) & ";"
next
%>
<%
dim formname, ThisProgram
ThisProgram="ListaArticoli.asp"
formname=left(ThisProgram, len(ThisProgram) - 4)
%>
<!--#include file="nav_web.asp" -->
<html >
...
<script type="text/javascript" language="javascript">
function PageBack() {
document.<%=formname%>.action = "<%=PreviousPage%>";
document.<%=formname%>.submit();
return true;
}
....
per tornare indietro dalla lista al menu principale bastera chiamare la funzione PageBack()
vediamo ora come si comporta se la lista articoli chiama una scheda articolo secono livello...
anche quest avrà a sua volta la dichiarativa in testa al file ASP
in questo caso dalla scheda Articolo la pagina precedente è la lista Articoli...come viene risolto dalla routine nav_web.asp<%
dim formname, ThisProgram
ThisProgram="SchedaArticolo.asp"
formname=left(ThisProgram, len(ThisProgram) - 4)
%>
<!--#include file="nav_web.asp" -->
<html >
...
<script type="text/javascript" language="javascript">
function PageBack() {
document.<%=formname%>.action = "<%=PreviousPage%>";
document.<%=formname%>.submit();
return true;
}
....
Nel caso di navigazione allo stesso livello, l'array viene riempito e se dalla scheda Articolo per esempio passassimo al fornitore dell'articolo... anche in questo caso la strada verrebbe memorizzata
e dal fornitore tornerebbe alla scheda articolo per tornare poi alla lista articoli e poi alla pagina index.asp...
Se naturalmenteda qualsiasi form si volesse tornare al menu basta chiamare direttamente la pagina principale cioe la index.asp e l'array di navigazione viene resettato....
Questa è una piccola routine che ho sviluppato per risolvere la navigazione tra form e usare sempre la stessa procedura
Naturalmente le pagine avranno ognuna un nome form relativo alla propria pagina con nome=valore
della variabile formname derivato dal nome del file asp.
spero di aver contribuito a chi necessita risolvere questo problema.
un saluto