Differenza UseSubmitBehavior true/false

mercoledì 21 ottobre 2009 - 15.24

andrestu Profilo | Expert

scusate qualcuno mi saprebbe spiegare la differenza nell'impostare la proprietà "UseSubmitBehavior" di un pulsante aspnet su true o su false.

questo è il rendering se imposto su false:

<input type="button" name="Button1" value="Submit" onclick="javascript:__doPostBack('Button1','')" id="Button1" />

e questo su true (il predefinito)

<input type="submit" name="Button1" value="Submit" id="Button1" />


cioè sono diversi ma alla fine tutti e due provocano un postback, qualè la differenza?

Gluck74 Profilo | Guru

di default è true e viene inviato dal browser il submit classico,
viceversa viene usato il meccanismo asp.net che consiste nella funzione __doPostBack(...).

questo permette semplicemente di avere particolari eventi e parametri lato server che, in pratica, ti servono se stai sviluppando controlli custom o devi fare delle gestioni particolari (MOLTO particolari) delle richieste.

ciao

totti240282 Profilo | Guru

Quindi per attivare gli eventi di un controllo al di fuori del form bisogna impostarlo a false ?
C'è solo un capitano !!!!!!

andrestu Profilo | Expert

non puoi, i controlli aspnet devono essere inseriti all'interno di un form impostato con runat="server"

Andrea Restucci - Web Developer

totti240282 Profilo | Guru

Allora non ho capito bene la differenza dell'impostazione di quel parametro.
Una cosa che ho notato che con jquery , utilizzando una modalpopup con all'interno dei bottoni, l'evento lato server (dei bottoni) viene scateneto solo impostando la proprietà "UseSubmitBehavior" a false.
C'è solo un capitano !!!!!!

Gluck74 Profilo | Guru

solitamente si usa a false quando si stanno sviluppando dei controlli custom, oppure quando si hanno dei "<button>" e non degli "<input type=button>"
qui la guida: http://msdn.microsoft.com/it-it/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx

in pratica con UseSubmitBehavior=true, il postback viene eseguito con gli strumenti del client/browser (form.submit).
Se il controllo che ha generato il submit non manda al server il proprio "name", lato server non si ha questa informazione per far scattare gli eventi del controllo.
Ecco perché un ipotetico button_click non viene richiamato.

Mettendo UseSubmitBehavior=false, non viene usato il meccanismo del browser, ma il meccanismo di asp.net, che non è altro che una funzione javascreipt __doPostback().
questa funzione aggiunge il dato mancante, ed il server riesce a far scattare gli eventi richiesti.

ciao

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5