Gestione parametri di ricerca tra pagine Web

venerdì 08 gennaio 2010 - 12.33

Stepush Profilo | Newbie

Ciao a tutti, innanzitutto vi saluto in quanto sono un nuovo utente.

Vi spiego il mio problema,
sto realizzando un sito, questo sito deve permettere di avere in header dei parametri di ricerca, e in base a questi deve caricare una pagina di risultati della ricerca, dai quali successivamente su selezione carica la pagina coi dettagli dell'oggetto selezionato.

Mi serve preservare i parametri, in modo da permettere all'utente di non doverseli "risettare" tutti ogni volta, e mi serve comunque avere nella barra del browes l'indirizzo completo della pagina con l'id dell'oggetto selezionato(es: www.cerca.ciccio.aspx?id=3333), in modo da permettere all'utente di copiarsi il link e magari "passarlo" a qualcun'altro, o semplicemente per salvarselo.

Ho pensato a 2 soluzioni:
- Pagina con iframe, mi permette di caricare sotto le pagine dei risultati con facilità e mantenere le selezioni di ricerca, purtroppo non mi fa vedere il percorso completo della pagina
- Master Page e Content Page, vedo il percorso completo, ma essendo praticamente 2/3 pagine distinte perdo tutte le volte le selezioni, avrei pensato di salvare in session i parametri di ricerca e ri-agganciarli tutte le volte, ma nn mi piace molto.

Idee????

GRazie in anticipo

alx_81 Profilo | Guru

>Ciao a tutti, innanzitutto vi saluto in quanto sono un nuovo utente.
Ciao e benvenuto su DotNetHell

>Mi serve preservare i parametri, in modo da permettere all'utente
>di non doverseli "risettare" tutti ogni volta, e mi serve comunque
>avere nella barra del browes l'indirizzo completo della pagina
>con l'id dell'oggetto selezionato(es: www.cerca.ciccio.aspx?id=3333),
>in modo da permettere all'utente di copiarsi il link e magari
>"passarlo" a qualcun'altro, o semplicemente per salvarselo.

>Ho pensato a 2 soluzioni:
>- Pagina con iframe, mi permette di caricare sotto le pagine
>dei risultati con facilità e mantenere le selezioni di ricerca,
>purtroppo non mi fa vedere il percorso completo della pagina
>- Master Page e Content Page, vedo il percorso completo, ma essendo
>praticamente 2/3 pagine distinte perdo tutte le volte le selezioni,
>avrei pensato di salvare in session i parametri di ricerca e
>ri-agganciarli tutte le volte, ma nn mi piace molto.
>
>Idee????
usando ASP.Net i campi dopo la submit rimangono grazie al viewstate ed alla proprietà EnableViewstate del controllo a true di default. Quindi non mi porrei il problema, se usa ASP.Net. Tu che usi?
Per quanto riguarda il record selezionato, basta usare il querystring per aprire il dettaglio del record passando l'id del record indicato. In poche parole potresti pensare ad una griglia o ad un repeater in cui il pulsante di "dettaglio" apre l'indirizzo con il link formattato con l'id in coda. Ma tutto dipende da quello che vuoi usare.

>GRazie in anticipo
di nulla!
--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

tonyexpo Profilo | Senior Member


Ciao e benvenuto :)

io farei una pagina di ricerca con in alto tutti i parametri (header) ed in basso l'elenco che ovviamente all'inizio sarà vuoto.
poi al click sul tasto cerca popolerei l'elenco dei risultati in basso.
i valori nei controlli nell'header rimarranno gli stessi per via del postback, in pratica ad ogni evento (come ad esempio il click su cerca) la pagina rimanda al server tutti i valori inseriti nel frattempo per poi ritornarli indietro sulla stessa pagina quando aggiornerà i risultati

per la navigazione alla pagina del dettaglio, puoi ovviamente aggiungere all'indirizzo pagina.aspx?chiave=valore. dalla pagina di dettaglio potrai leggere il valore tramite la proprietà Request.QueryString["chiave"]

Ciao


Antonio Esposito
MCTS .NET 3.5 WCF, .NET 3.5 Windows Forms, .NET 2.0 Distributed applications, MCP

http://blogs.dotnethell.it/espositos

Stepush Profilo | Newbie

>usando ASP.Net i campi dopo la submit rimangono grazie al viewstate
>ed alla proprietà EnableViewstate del controllo a true di default.
>Quindi non mi porrei il problema, se usa ASP.Net. Tu che usi?
>Per quanto riguarda il record selezionato, basta usare il querystring
>per aprire il dettaglio del record passando l'id del record indicato.
>In poche parole potresti pensare ad una griglia o ad un repeater
>in cui il pulsante di "dettaglio" apre l'indirizzo con il link
>formattato con l'id in coda. Ma tutto dipende da quello che vuoi
>usare.

Ciao, grazie per la risposta , utilizzo .net, il framework 3.5, effettivamente nn avevo pensato al viewstate, mi era venuta in mente la Session, comunque mi tocca in ogni caso ricaricarle "a mano" nella master page giusto?

Stepush Profilo | Newbie

>
>Ciao e benvenuto :)
>
>io farei una pagina di ricerca con in alto tutti i parametri
>(header) ed in basso l'elenco che ovviamente all'inizio sarà
>vuoto.
>poi al click sul tasto cerca popolerei l'elenco dei risultati
>in basso.
>i valori nei controlli nell'header rimarranno gli stessi per
>via del postback, in pratica ad ogni evento (come ad esempio
>il click su cerca) la pagina rimanda al server tutti i valori
>inseriti nel frattempo per poi ritornarli indietro sulla stessa
>pagina quando aggiornerà i risultati
>
>per la navigazione alla pagina del dettaglio, puoi ovviamente
>aggiungere all'indirizzo pagina.aspx?chiave=valore. dalla pagina
>di dettaglio potrai leggere il valore tramite la proprietà Request.QueryString["chiave"]
>
>Ciao
>


Ciao, ci avevo pensato, ma nel momento in cui carico la nuova pagina(quella di dettaglio), perderei le selezioni nell'header se utilizzo una masterpage, o sbaglio?

alx_81 Profilo | Guru

>Ciao, ci avevo pensato, ma nel momento in cui carico la nuova pagina(quella di dettaglio), perderei le selezioni nell'header se utilizzo una masterpage, o sbaglio?
Se segui iframe, non perdi nulla, non ricarichi il frame..
se usi una master ed un content, se i filtri sono enableviewstate a true la postback rivalorizza da sola i campi.


--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

Stepush Profilo | Newbie

>Se segui iframe, non perdi nulla, non ricarichi il frame..
>se usi una master ed un content, se i filtri sono enableviewstate
>a true la postback rivalorizza da sola i campi.
>

con l'iframe non ricarico la pagina e ok, però nella barra di navigazione non vedo il percorso della pagina caricata nell'ifram. o si può visualizzare??
Per le masterPage, se ho 2 contente page, "esiti ricerca" e "dettaglio oggetto", non faccio un postback della pagina, sono 2 pagine differenti quindi non capisco come potrebbe funzionare il viewstate.....mi sa che mi sto perdendo qualcosa....


alx_81 Profilo | Guru

>Per le masterPage, se ho 2 contente page, "esiti ricerca" e "dettaglio
>oggetto", non faccio un postback della pagina, sono 2 pagine
>differenti quindi non capisco come potrebbe funzionare il viewstate.....mi
>sa che mi sto perdendo qualcosa....
se fai una master ed n content, la pagina generata è una. Quindi vale eccome il viewstate. La pagina è una sola.
--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

Stepush Profilo | Newbie

>se fai una master ed n content, la pagina generata è una. Quindi
>vale eccome il viewstate. La pagina è una sola.

Ok. Questo è chiaro. Il problema è un'altro, magari l'ho esposto male o non sto capendo io cosa mi suggerisci, ricapitoliamo:
- masterPage con dropDownList/checkbox ecc di selezione, che devono rimanere "valorizzate"
- contentpage con gridview che restituisce la lista di oggetti con quelle caratteristiche
manca un pezzo, dalla lista io devo selezionare(click, pulsante dettagli o qualsiasi altra cosa) ed aprire i dettagli di un oggetto.
Se voglio che qualcuno, conoscendone il link, acceda direttamente ai dettagli, devo realizzare una pagina che chiamo con passaggio parametri (?id=valore) in modo da fornire un link "parlante".
Quindi ho ipotizzato una nuova content page, da cui il problema! Se carico una seconda contentpage perdo la selezione, in quanto è una pagina nuona, un redirect, quindi il viewstate nn vale.
Per questo avevo pensato alle variabili di sessione, mi salvo i valori di ricerca e li "ri-assegno" con l'apertura della pagina nuova, ma come?

Ma non ho capito cosa mi suggerisci tu quando mi dici di usare una content page sola.....

p.s: grazie per darmi retta

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5