Qualcosa su di me

Mi chiamo Andrea Moro, sono un appassionato di informatica da quando avevo 8 anni e da quando mio padre mi regalò il C64.

Qualche anno più tardi, il mio primo pc e nel 1994 la prima esperienza con Internet, di cui mi sono subito innamorato e con cui oggi mando avanti la mia attività di Web Designing e posizionamento nei motori di ricerca.

View Andrea Moro's profile on LinkedIn

Calendar

<<  novembre 2008  >>
lumamegivesado
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

View posts in large calendar


RSS

L'uso del PostBack in una pagina ASP.Net consente di inviare al server - attraverso la stessa pagina - un evento che indica che qualcosa è accaduto nella pagina stessa.
Questo meccanismo avviene tramite una funziona javascript che il framework aggiunge all'HTML della pagina generata e renderizzata nel browser e alla quale associa "il click" dei controlli server per i quali si vuole trasmettere informazioni al server affinchè quest'ultimo le processi.

Fintanto che questo meccanismo viene fatto attraverso controlli lato server, tutto funziona "magicamente" con del codice testato dal team di sviluppo di ASP.Net.

Quando però, per qualche ragione che non sto a sindacare, è necessario che a fare il postback sia un controllo lato client, bisogna fare in modo che il controllo client si agganci al meccanismo di PostBack e lato server se ne intercetti l'evento.

Come fare?

A partire dalla versione 2.0 del framework è stato introdotto il metodo GetPostBackEventReference per la classe ClientScriptManager, che automaticamente genera quasi tutto il codice necessario per fare in modo che questo processo funzioni correttamente.

Si supponga per esempio che si vuole generare un link standard che faccia il PostBack. Potremmo scrivere qualcosa di questo tipo:

String.Format("Test", csm.GetPostBackEventReference(NomeDelControllo, ValoreDelPostBack));

Prendendo il risultato del Format e reindirizzandolo verso il corretto output.

Ovviamente dovremo prima creare un oggetto di tipo ClientScriptManager, che nel mio caso è csm, al quale passeremo un reference del codice javascript contenuto nella pagina con una sintassi come questa:

ClientScriptManager csm = Page.ClientScript;

Fatto questo, sarà possibile, premento sul link, intercettare il PostBack nella successiva chiamata alla pagina, nell'ormai noto evento OnLoad, con qualcosa di questo tipo:

if (Page.IsPostBack)
{
    if (Page.Request.Form["__EVENTTARGET"] != "....")
    {
        if (Page.Request.Form["__EVENTARGUMENT"] != string.Empty)
            ....
    }
}

 

Technorati Tags:

 


Vota questo post per primo

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Aggiungi commento


(Visualizza la tua icona Gravatar)  

  Country flag


  • Commento
  • Anteprima
Loading



Advanced Technology

Abruzzo SEO specialist, .Net programming and computer stuff