Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di xcs
    Registrato dal
    Mar 2001
    Messaggi
    123

    Sub Page_Load, delucidazioni

    Chi mi sa dire cosa si DEVE e cosa NON si DEVE mettere nel Sub Page_Load, e qual'è esattamente la sua funzione.

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: Sub Page_Load, delucidazioni

    Originariamente inviato da xcs
    Chi mi sa dire cosa si DEVE e cosa NON si DEVE mettere nel Sub Page_Load, e qual'è esattamente la sua funzione.

    Grazie.
    credo che la puoi considerare come il main del c, cioè, come il punto di partenza del programma
    Pietro

  3. #3
    Utente di HTML.it L'avatar di xcs
    Registrato dal
    Mar 2001
    Messaggi
    123

    Re: Re: Sub Page_Load, delucidazioni

    Originariamente inviato da pietro09
    credo che la puoi considerare come il main del c, cioè, come il punto di partenza del programma
    Però ho visto che non è sempre presente nello script, quindi credo che sia necessario solo in determinate circostanze oppure che solo in alcune non lo sia...

  4. #4
    private void Page_Load(object sender, System.EventArgs e)

    è l'evento che viene richiamato al caricamento di una pagina aspx, viene definito nel code-behind:

    this.Load += new System.EventHandler(this.Page_Load);

    senza dilungarmi troppo (ti consiglio di dare un'occhiata al sito msdn), puoi considerare questo metodo come un buon punto per inizializzare i controlli presenti nella pagina (per es. scrivere testo in una label, popolare una datagrid) o controllare il login di un'utente e decidere se può vedere o meno determinati contenuti ed eventualmente reindirizzare ad un'altra pagina con un bel Response.Redirect(...).

    non è obbligatorio, ma parecchio utile.


    ps. la funzione main di c qui non centra, questo è un semplice gestore di un evento.

    ciao!
    If you want a picture of the future, imagine a boot stamping on a human face-for ever.

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Gentilissimo xcs, quando una pagina aspx viene inviata al server, ecco cosa accade:
    1) Asp.Net carica la classe di codice sottostante e scatena l'evento Page_Init. In questa fase il codice non è in grado di determinare se questa corrisponde alla prima richiesta per la form, e neppure di estrarre i valori che l'utente ha immesso nei controlli.

    2) Una volta inizializzata la pagina e tutti i relativi controlli, viene scatenato l'evento Page_Load. A questo punto, è possibile determinare se la pagina è in esecuzione a causa di un'operazione di postback (controllando la proprietà IsPostBack) e accedere ai valori correnti nei controlli. Tipicamente, questo evento viene utilizzato per inizializzare i controlli e legarli alle sorgenti dati. In altre parole, l'evento si utilizza per tutte le operazioni che si eseguono generalmente nell'evento Load di una Windows Form.

    3) Se si tratta di una operazione di postback, si scatenano tutti gli eventi relativi ai controlli. Ad esempio, TextChanged per le caselle di testo modificate dall'utente finale e CheckedChanged per le caselle di controllo e i pulsanti d'opzione selezionati.

    4)L'ultimo evento scatenato è quello relativo al controllo che ha generato il postback; solitamente si tratta dell'evento Click di un pulsante di o di un ImageButton.

    5)Infine, l'oggetto Page scatena un evento Unload, quando è tempo di rilasciare tutte le risorse, chiudere i file e le connessioni al database e così via.


    Dopo questo evento, tutte le variabili di classe vengono distrutte e sono definitivamente perse, a meno che non si salvi da qualche parte il loro valore (ad esempio, in una variabile di sessione).

    L'ordine con cui vengono scatenati gli eventi dei controlli non è necessariamente quello con cui l'utente finale ha operato sui controlli corrispondenti. Infatti, gli oggetti delle Web Form scatenano tali eventi analizzando lo stato corrente di tutti i controlli della form rinviati al server e confrontandolo con quello che i controlli possedevano quando la form è stata inviata al browser...

    Detto questo, io penso all'evento Load come al punto di entrata del programma, pressapoco come al main del c (chi vuol capire capisca ) e ti faccio alcuni esempi.

    1) Nell'evento Load non metto niente. Può capitare per esempio (guarda che sto semplificando al massimo) ad una pagina che abbia solo un pulsante ed una label. In questo caso utilizzo l'evento click del pulsante per svolgere un compito e restituire il risultato alla label.

    2) (ti ripeto che sono solo esempi) Ho una pagina che viene richiamata da un'altra e si aspetta di ricevere uno o più parametri.

    codice:
    Private Sub Page_Load(.....
    
    'disabilito il viewstate
    Me.EnableViewState = False
    
    'valorizzo alcune variabili private di classe
    Me.id_utente = j.id_utente
    
    'inizializzo i miei combobox
    InizializzaComboBox()
    
    'controllo se la pagina ha ricevuto i parametri necessari
    'se non ricevo niente non proseguo e mando un messaggio
    ParametriPassati = ControlloSalvoParametriPassati()
    
    If Not ParametriPassati Then
    MessaggioErrore("Non è stato.....
    End If
    
    'registro script client
    Me.RegisterOnSubmitStatement(....
    Me.RegisterStartupScript(
    
    
    'lego la sorgente dati
    If Not Me.IsPostBack Then
    BindData()
    end if
    
    End Sub
    un altro esempio (una pagina che fa vedere gli utenti collegati):
    codice:
    Private Sub Page_Load(....
    
    'scrivo una lista di utenti collegati al sistema
    Me.Literal1.Text = UtentiCollegati()
    
    'aggiorno la pagina ogni 15 secondi
    Response.AddHeader("Refresh", "15") '15 secondi
    
    end sub

    Altro. Pagina richiamata per la disconnessione
    codice:
    Private Sub Page_Load(....
    FormsAuthentication.SignOut()
    
    'richiamo una funzione personale shared in una classe Libreria
    Libreria.CancellaCookies()
    
    end sub
    et dulcis in fundo, ho un controllo utente che crea una maschera per filtrare dati di una tabella di un database, pagina .ascx
    codice:
    Private Sub Page_Load(...
    'creo la grafica nella pagina
    CreaTabella()
    
    'creo gli script javascript (ahimè, necessari in una pagina seria)
    CreaScript()
    end sub

    non so se ti sono stato utile, comunque tieni conto che con l'esperienza sarà più facile farle queste cose che cercare di spiegarle

    Ciao
    Pietro

  6. #6
    Utente di HTML.it L'avatar di xcs
    Registrato dal
    Mar 2001
    Messaggi
    123
    Pietro non sei stato solo utile sei stato un GRANDE!
    Grazie

    Ho capito il suo compito e la sua importanza, e come dici tu con l'esperienza sarò in grado di gestirlo sempre meglio.
    Comunque ho già capito diverse cose perchè ho cominciato a realizzare qualche piccola applicazione windows con vb.net, e mi sto rendendo conto, tra le altre cose, che effettivamente si utilizzano gli stessi script sia per windows che per web.
    Già amo il framework (in asp.net la separazione tra codice e layout è quanto di meglio si potesse chiedere)...


  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da xcs
    Pietro non sei stato solo utile sei stato un GRANDE!
    Grazie

    Sì, come no, Petrus Maior E' che l'ho copiato da un buon libro

    Buone Feste
    Pietro

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.