8 messaggi dal 18 giugno 2004
Salve,
Ho dei problemi con i LinkButton (e Button):
Alla prima pressione di uno di questi la pagina aspx non fa alcuna azione,
mentre alla seconda pressione l'azione inserita nell'evento esegue correttamente lo script (porta in sessione dei dati e ricarica la stessa pagina abilitando dei panel non visibili in precedenza).
Non credo che l'utente dell'applicazione voglia cliccare due volte un pulsante per effettuare le azioni previste!!!

Grazie
Alessandro
l'evento Click si verifica anche al primo postback?

posta un pò di codice

xiaaooz

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
8 messaggi dal 18 giugno 2004
codice linkbutton:


private void InserisciNuovaZona_Click(object sender, System.EventArgs e)
{
bool nuovazona=true;
Session["NuovaZona"] = nuovazona;

}

codice Pageload:

private void Page_Load(object sender, System.EventArgs e)
{
string Id=Request.QueryString["Id"].ToString();
if (!Convert.ToBoolean(Session["NuovaZona"]))
{
PannelloZona1.Visible=true;
PannelloZona2.Visible=false;
}
etc.. etc...
68 messaggi dal 05 dicembre 2002
www.tecnohome.it
Ciao alessandro,
questo sucede perche il metodo page_load viene eseguito prima del button_click.
Ecco cosa sucede quando fai un postback :

Initialize >> Load view state >> Process postback data >> Load >> Send postback change notifications(Solo per notificazioni su cambiamenti di dati dopo un postback. come l'evento textchanged su un controllo textbox) >> Handle postback events(Eventi click) >> Prerender(un buon posto per fare cambiamenti prima che sucede il rendering) >> Save state (Salva l'informazione viewstate. Questi dati vanno salvati in hidden field sulla pagina) >> Render >> Dispose >> unload

Come soluzione vedi di mouvere il tuo codice dal page_load al Page_PreRender()

Il vantaggio di questa soluzione consiste nel fatto che il metodo PreRender viene esequito solamente dopo l'evento click, e non e' ancora troppo tardi per fare cambiamenti nel applicazione.

Alessandro
MCP
tutti gli eventi, in questo caso il click si svolgono dopo il pageload è per questo che ti funziona solo al secondo clik

ex:

load della pagina :
controllo il valore----> è false

evento click------>imposto a true

ma nulla controlla il nuovo valore

solo al successivo postback il pageload può leggere la session


spero si essermi spiegato

quello che fa il page load fallo fare ad un altro metodo richiamato dal click

xiaaooz


p.s mi scuso per la rispsota doppia non avevo visto
Modificato da nostromo il 22 giugno 2004 10.26 -

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.