Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    intercettare postback lato client

    In una pagina ho la necessità di intercettare il postback di una pagina per lanciare uno script, l'handler però mi serve lato client.

    Ho provato a metterlo sull'evento onsubmit del form (RegisterOnSubmitStatement), ma mi viene generato solo quando il postback e generato da un pulsante di submit.
    Per intercettare i postback generati dagli altri elementi (linkbutton, dropdown...) mi tocca gestire ogni singolo evento onclick di ogni elemento o qualcuno ha qualche idea migliore?

  2. #2
    Se non sbaglio con il codice:
    codice:
    page.RegisterOnSubmitStatement("x","return confirm('Sei sicuro?');")
    Ogni controllo che effettua il postback dovrebbe eseguire quel codice Javascript (in questo esempio chiede la conferma).

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  3. #3
    Originariamente inviato da AndreaZani
    Se non sbaglio con il codice:
    codice:
    page.RegisterOnSubmitStatement("x","return confirm('Sei sicuro?');")
    Ogni controllo che effettua il postback dovrebbe eseguire quel codice Javascript (in questo esempio chiede la conferma).

    Ciao
    In effetti l'evento viene scatenato, ma mi cambia l'ordine degli eventi. Quello che mi serviva era salvare lo stato della pagina quando ne viene chiamata un'altra, e questo l'ho fatto con l'evento onunload del body. nell'evento onsubmit annullavo il salvataggio di cui sopra (perchè si rimane sulla stessa pagina). Nel caso prema un bottone l'ordine degli eventi :

    form.onsubmit (annullo salvataggio)
    body.onunload

    nel caso di un'hyperlink o altro:

    body.onunload
    form.onsubmit (salvataggio già effettuato)


    mi sa che mi tocca gestire i click di tutti i controlli

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da DeBe99
    In effetti l'evento viene scatenato, ma mi cambia l'ordine degli eventi. Quello che mi serviva era salvare lo stato della pagina quando ne viene chiamata un'altra, e questo l'ho fatto con l'evento onunload del body. nell'evento onsubmit annullavo il salvataggio di cui sopra (perchè si rimane sulla stessa pagina). Nel caso prema un bottone l'ordine degli eventi :

    form.onsubmit (annullo salvataggio)
    body.onunload

    nel caso di un'hyperlink o altro:

    body.onunload
    form.onsubmit (salvataggio già effettuato)


    mi sa che mi tocca gestire i click di tutti i controlli
    Forse non è necessario :master:

    Dammi conferma: quando fai il PostBack, da tutti i pulsanti, link o altro, vuoi prima eseguire una funzione client javascript?

    Se confermi, forse domani mattina recupero la soluzione in ufficio (e se funziona, l'ho presa da questo stesso forum)

    Pietro

  5. #5
    Originariamente inviato da pietro09
    Forse non è necessario :master:

    Dammi conferma: quando fai il PostBack, da tutti i pulsanti, link o altro, vuoi prima eseguire una funzione client javascript?

    Se confermi, forse domani mattina recupero la soluzione in ufficio (e se funziona, l'ho presa da questo stesso forum)

    Si, però è importante che la funzione venga eseguita prima dell'unload della pagina

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Dunque, qualche tempo fa, credo ZofM, mi abbia dato una funzione che penso faccia al caso tuo.
    In pratica, il postback si può fare in due modi
    1) con un pulsante di submit
    2) tramite javascript (per esempio un linkbutton)

    per i primi si scatena l'evento onsubmit del form
    codice:
    <form id="Form1" method="post" runat="server" onsubmit="return confermo()">
    dove per semplicità, confermo() è una semplice funzione di prova
    codice:
    function confermo()
    {
    	return window.confirm('Confermi?'); 
    }
    per i secondi, viene richiamata la funzione __doPostBack
    si tratta di salvarla in una variabile, utilizzare una funzione personalizzata e richiamare la funzione salvata
    codice:
    			<script type="text/javascript"> 
    			<!--
    			/*faccio un "backup" del vecchio doPostBack*/ 
    			var __oldDoPostBack; 
    			if(self.__doPostBack != undefined) __oldDoPostBack = __doPostBack; 
    
    			/*ora sostruisco la funzione con una mia personale*/ 
    			__doPostBack = beforeDoPostBack; 
    
    			function beforeDoPostBack(eventTarget, eventArgument) 
    			{ 
    				/*chiedo conferma e poi eseguo il vecchio doPostBack*/ 
    				if(confermo()) 
    				{ 
    					__oldDoPostBack(eventTarget, eventArgument); 
    					
    				} 
    			} 
    
    			//-->
    			</script>
    		</form>
    questa funzione, per funzionare deve essere messa prima del tag di chiusura </form>

    Naturalmente, se funziona, si può mettere pure da codice sottostante:

    Me.RegisterOnSubmitStatement("confirm", "if(Page_******
    Me.RegisterStartupScript("doPostBack", "<scrip****

    ma preferisco averle sottomano nella pagina

    fai sapere
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.