16 messaggi dal 16 aprile 2010
ciao a tutti....ho un problema veramente BANALE ma io mi ci sto perdendo. Premetto che non conosco javascript....ed ho letto qualcosa sul forum per adattarlo alle mie esigenze.
l'esigenza è molto diffusa (la semplifico molto...dato che a me non funziona NEMMENO in un semplice progetto fatto apposta x trovare l'errore):

da una pagina Clienti.aspx apro un popup (popup.aspx) per scegliere una banca da una gridview. Per semplificare il tutto diciamo che la banca scelta viene scritta nella textbox "popup_banca.text" presente in popup.aspx.

Quindi dovrei chiudere il popup ed assegnare il valore in "popupbanca.text" nella textbox "banca.text" di clienti.aspx.

va detto che: clienti.aspx ha una masterpage dove ho messo questo javascript:

function OpenBanca() {
window.open("popup.aspx", "List", "scrollbars=no,resizable=no,width=400,height=280");
return false;
}

mentre in popup.aspx
ho messo questo javascript:
window.opener.document.getElementById('banca').value = document.getElementById('popup_banca').value;

non mi da errore....semplicemente non accade niente nella pagina clienti.aspx....nemmeno mettendo window.opener.location.reload();

ho provato anche a passare una stringa fissa..ma niente..
puo' entrarci il fatto della master page ?

Grazie a tutti, Fabio.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
hai verificato nel sorgente HTML delle due pagine che le textbox abbiano come ID rispettivamente "banca" e "popup_banca"?
Se un controllo si trova in una pagina che usa masterpage, il suo ID non sarà uguale a quello server-side, ma sarà una cosa tipo: ContentPlaceHolder1_banca

Assicurati che l'ID del controllo sia coerente con quello che usi nei javascript.

D'altra parte hai detto che non hai errori javascript, quindi potrebbe non essere questo il problema. Comunque, che strumento stai usando per verificare che non ci siano errori?


window.opener.document.getElementById('banca').value = document.getElementById('popup_banca').value;


Sembra corretto ma... in che punto si trova questo codice? Dovresti invocarlo nel momento in cui l'utente clicca un bottone, per esempio.

Non bisogna invocare window.opener.location.reload(); altrimenti costringi la prima pagina a ricaricarsi perdendo così il valore che avevi copiato nella sua textbox. Se lo script funziona, dovresti immadiatamente vedere il valore, non c'è bisogno di alcun ricaricamento.

Enjoy learning and just keep making
16 messaggi dal 16 aprile 2010
Ciao

>in che punto si trova questo codice?
nel form load del popup ho messo questo codice, che viene invocato sul click del bottone:
Me.button_chiudi.Attributes.Add("onclick", "javascript:return aggiorna()")


>Se un controllo si trova in una pagina che usa masterpage, il suo ID >non sarà uguale a quello server-side, ma sarà una cosa tipo: >ContentPlaceHolder1_banca
hai ragione, in realtà si chiamava "MainContent_TextBox1" !!!

ora se imposto una stringa funziona, tipo:
window.opener.document.getElementById("MainContent_banca").value = "testo di prova";
se invece metto:
window.opener.document.getElementById("MainContent_banca").value =document.getElementById("popup_banca").value;

invece non funziona...

tieni conto che il popup non ha la masterpage e guardando l'html il nome del testo è quindi effettivamente "popup_banca".

>he strumento stai usando per verificare che non ci siano errori?
nessuno strumento (x quanto riguarda i javascript).... :-(
anzi se hai suggerimenti....sono proprio alle prime armi

GRAZIE MILLE....
11.886 messaggi dal 09 febbraio 2002
Contributi
tribalhagi ha scritto:
tieni conto che il popup non ha la masterpage e guardando l'html il nome del testo è quindi effettivamente "popup_banca".


Ok, siamo vicini alla soluzione :) Allora, controlla di non avere altri controlli o tag html all'interno della pagina con l'ID "popup_banca". Se così fosse, il getElementById ti restituirebbe un altro elemento che non è la textbox e che perciò non ha una proprietà .value.

Per capire se si stanno verificando errori, puoi usare le console javascript che ormai sono presenti in tutti i browser.

- Su IE9, premi F12 e poi vai nella scheda "Script". Ora aggiorna la pagina web.
- Su Firefox e Chrome, premi CTRL+SHIFT+J

Se compaiono errori, scrivi qui il testo.

ciao,

Enjoy learning and just keep making
16 messaggi dal 16 aprile 2010
Ciao, ieri son dovuto uscire.
effettivamente dipende proprio da quello.
Ti ringrazio moltissimo per l'aiuto !!!

saluti, Fabio.

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.