Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072

    Tornare alla ricerca precedente

    Ciao a tutti, ho un sito con una pagina search.aspx che visualizza il risultato in un repeater (leggendo i parametri) ed una pagina detail.aspx che visualizza il dettaglio di uno specifico record. Nella pagina di dettaglio vorrei inserire un link per tornare alla ricerca precedente.
    Come posso fare?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Non è possibile?


    (grazie)

  3. #3
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    SE i criteri di ricerca li salvi nella querystring e quindi la pagina dei risultati di ricerca ha un url tipo:
    search.aspx?idcitta=1&idcategoria=3
    puoi creare i link di ritorno nella pagina di dettagli attaccandoci un valore sempre in querystring tipo:
    details.aspx?idProdotto=4&returnurl=search.aspx?id citta=1&idcategoria=3
    a questo punto il link indietro nella pagina dettagli lo costruisci utilizzando il valore presente in querystring["returnurl"].

    Per completezza e per evitare problemi di sicurezza quando scrivi il parametro returnurl (e tuttti i parametri querystring) dovresti codificarloe quando lo leggi decodificarlo con i metodi httpServerUtility.UrlEncode e UrlDecode.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Grazie per la risposta!!

    Encode e Decode li uso già ... per evitare di mettere in chiaro gli ID dei record.

    Non ho capito come funziona il querystring["returnurl"]

    Speravo fosse possibile tornare "indietro" tenendo in sessione i risultati precedenti

    Grazie ancora

  5. #5
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    io appartengo al quel partito che ha come slogan "meno session per tutti".
    La mia soluzione va solo se search.aspx l'hai strutturata in modo che il datasource del repeater usi la querystring per fare la query al db. Puoi ovviamente utilizzare anche la session, cosa che molto probabilmente è piu facile da implementare:

    Se (e questa è una seconda soluzione che usa la session) in search.aspx hai dei controlli e al postback (generato dal tasto cerca) il datasource fa la query leggendo da quei controlli allora devi fare in modo che
    1) Al postback in page_load leggi i valori dai controlli di ricerca e li metti in altrettante variabili di sessione (Session["idCitta"] = textboxCitta.Text);
    2) istruisci il datasource a prendere i dati dalla session invece che dai controlli. Facendo cosi non hai bisogno nemmeno di returnurl basta andare in search.aspx dalla pagina dettagli e ti ritrovi la ricerca precedente gia bella e pronta.

    Per istruire un datasource ad usare la sessione nella sezione SelectParameters invece che metterci i controlParameter devi usare i SessionParameter indicando il tipo del parametetro (Int32, string) e il npome della chiave.

    La soluzione di salvare l'intero datasource o tutto il grafo oggetti nella sessione non la prendo nemmeno in considerazione: per dieci richieste non ti basterebbe un server dedicato.

  6. #6
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    E se si salva la command del datasource compresi i parametri e i loro valori non è meglio ?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Come sarebbe questa seconda soluzione??

    Grazie ancora

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Come sarebbe questa seconda soluzione??

    Grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.