ASP.NET Come aumentare evento di caricamento della pagina precedente con il postback della pagina croce

StackOverflow https://stackoverflow.com/questions/2307576

  •  22-09-2019
  •  | 
  •  

Domanda

Sto lavorando su un set wizard-come pagina, e sto contando su postback della pagina croce per spostarsi tra loro.

Ho bisogno di essere in grado di attivare l'evento Load della pagina precedente, al fine di salvare i dati del modulo per la pagina.

Mi è stato detto che, per situazioni di questo genere tutto quello che dovevo fare è accedere alla proprietà PreviousPage nella pagina di destinazione e questo farebbe scattare l'evento di caricamento della pagina precedente, ma per qualche motivo questo non sembra essere di lavoro.

C'è qualcos'altro che posso fare per attivare in modo esplicito l'evento carico sul PreviousPage se la proprietà PreviousPage non è nullo?

Grazie per il vostro aiuto,

Yong

È stato utile?

Soluzione

Avete preso in considerazione lo spostamento qualunque logica di persistenza che si sta facendo nel carico della pagina precedente in un metodo nella pagina?

In questo modo si può solo colpire:

if(PreviousPage != null)
   PreviousPage.DoThatSavingThing();

Ovviamente avresti bisogno di digitare per ottenere i metodi specifici che si aggiungono a meno che non si è aggiunto quelli a tutte le pagine.

Altri suggerimenti

Questo suona un po 'di confusione per me, ma se si vuole l'accesso ai dati, è meglio per salvare i dati in qualcosa che si può facilmente raggiungere, come la cache di sessione ASP.NET. Così, invece di tornare ad una pagina precedentemente navigato al fine di ottenere dati, sarà in cache i dati la prima volta che si raggiunge la prima pagina, e poi, quando l'utente si sposta alla seconda pagina, avrà accesso a tali informazioni.

Per aggiungere - Ho provato utilizzando due metodi di ottenere un IndietroPagina "fortemente tipizzato"

.
  1. Aggiunto un riferimento alla destinazione:

  2. Aggiunta la direttiva PreviousPage della destinazione:

Quando si accede alla proprietà PreviousPage nella destinazione, l'evento Load è stato licenziato sulla Pagina PreviousPageName (fonte).

Esempio (presumere che vi sia una proprietà pubblica denominata Test sul PreviousPageName (pagina di origine)):

protected void Page_Load(object sender, EventArgs e)
{
    if (PreviousPage != null)
    {
        //Using a reference, you have to cast:
        PreviousPageName x = (PreviousPageName)PreviousPage;
        string test = x.Test;

        //Using the PreviousPage directive, you do not need to cast:
        string test2 = PreviousPage.Test


    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top