66 messaggi dal 14 febbraio 2007
Da una pagina aspx apro un popup che, al click di un bottone viene chiuso e fa window.opener.__doPostBack su di un pulsante della pagina padre, che effettua altre operazioni.
Nella pagina padre c'è una gridview, il problema è che quando tolgo l'autogenerateSelectButton il javascript non mi funziona più, quindi il popup rimane aperto e non scatena l'evento click del bottone della pagina padre.
Immagino che l'autogenerated selectButton scateni qualche postback, non ho ben capito, che permette al __doPostback di funzionare.
Come faccio per eliminare questo select button della gridview facendo in modo che il javascript funzioni lo stesso?
Grazie per l'attenzione.
Davide
se non c'è nessun controllo che scatena PostBack la funzione non viene aggiunta alla pagina, devi farlo tu a mano utilizzano le classi che il framework mette a disposizione.

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
66 messaggi dal 14 febbraio 2007
scusa, non ti seguo, non ho capito cosa devo fare..
Basta mettere un pulsante nascosto, ad esempio?cosa deve fare?
non devi scrivere direttamente __doPostback nello scipt, ma usare ClientScriptManager.GetPostBackEventReference in modo che il runtime aggiunga la funzione __doPostback .

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
66 messaggi dal 14 febbraio 2007
il fatto è che io devo fare il window.opener.__doPostback, in modo da generare l'evento click sul form padre..
Io facevo così(dalPopUp)
ClientScriptManager csClose = this.Page.ClientScript;
Type csType = csClose.GetType();
string loc_sScript = "Chiusura";
string loc_sJava = "<script type=\"text/javascript\" language=\"javascript\">\n window.opener.__doPostBack('bottoneDaClikkare','');\n window.close();\n </script>";
if (!csClose.IsClientScriptBlockRegistered(this.GetType(), loc_sScript))
csClose.RegisterClientScriptBlock(this.GetType(), loc_sScript, loc_sJava, false);

Questa modifica che mi dici, la devo fare sul form padre o sul popup?

ho provato così, ma fa casino!!!!:
string loc_sJava = csClose.GetPostBackEventReference(new Control(), "('btnExternalPostback','')");, ma non funziona!
non devi sostituire tutto lo script.

ma solo la parte dove "cabli" il __doPostBack, in pratica:

string s = "window.opener." + ClientScript.GetPostBackEventReference(this, string.Empty);

per brevità ho omesso gran parte del tuo codice, ma il concetto è il solito.

ciao marco

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.