Aiuto con Iframe

martedì 20 marzo 2012 - 09.23
Tag Elenco Tags  VB.NET  |  .NET 3.5

darkeric Profilo | Senior Member

Salve a tutti

ho inserito un iframe all'interno della pagina di Default
lo stesso in pratica vorrei utilizzarlo al posto del contentplaceHolder.
Quindi senza MasterPage e tutte le pagine verranno poi visualizzate al suo interno

fintanto che il cambio pagina avviene da un controllo
della default non ci sono problemi

se invece dovessi cambiare pagina da un controllo all'interno dell' iframe
non so come fare per recuperare la proprietà src dell' iframe stesso.

mi aiutereste?



Programmatore per passione!

andrestu Profilo | Expert

prova ad impostare l'iframe con runat="server", dovresti avere accesso alle suo proprietà lato codice...

Andrea Restucci - Web Developer

Gluck74 Profilo | Guru

vediamo se ho capito bene,
quando devi cambiare pagina, la nuova pagina deve stare dentro iframe o al posto della default?

____________
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.

andrestu Profilo | Expert

se non ho capito male la pagina di aspnet rimane sempre la stessa, cambia invece il contenuto dell'iframe dove all'interno vengono caricate le pagine.
A parer mio una struttura simile la consiglio solo se strettamente necessaria

Andrea Restucci - Web Developer

Gluck74 Profilo | Guru

potrebbe avere il suo perché

ma allora non ho capito il problema, perché se il postback avviene dentro il frame, viene ricaricato solo il frame, non la default che lo contiene.
boooo???

____________
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.

andrestu Profilo | Expert

bo non so bisognerebbe capire meglio la struttura, io per esempio per esigenza (e non per scelta) l'altro giorno mi son ritrovato a dover strutturare una pagina html con all'interno un Iframe che conteneva una pagina aspx. (ma forse in questo caso è l'inverso).
e sono andato incontro a diverse problematiche...
forse facendo l'inverso la questione è più semplice non saprei bisognerebbe fare delle prove.

Andrea Restucci - Web Developer

darkeric Profilo | Senior Member

Grazie innanzitutto per le risposte

vedo di fare un pò di chiarezza anche sui perchè dell' Iframe

la mia pagina Default.aspx

contiene un menu completo di sottomenu in Silverlight

poichè quando si clicca su un pulsante del sottomenu ho la necessità
che mi rimanga visualizzato il sottomenu stesso
non posso cambiare pagina(altrimenti si ricaricherebbe il controllo Silverlight)

Ecco il perchè della scelta dell Iframe.

adesso spiego meglio il mio problema

Cliccando sul link del menu di silverlight
riesco a impostare il valore di src dell' iframe che gira su Server
poichè esso si trova nella pagina di default che è la stessa del menu
quindi quando vado a cercare l' Iframe "Pagina" con findcontrol lo trovo e modifico
src per caricare la pagina richiesta

adesso invece ho la necessità di cambiare src dalla pagina che stà nell'iframe
quindi non essendo la default non trovo il controllo Iframe "pagina"

in pratica devo modificare src dell Iframe da un altra pagina

help!




Programmatore per passione!

andrestu Profilo | Expert

mmmm a me non sembra una soluzione ottimale quella dell'Iframe. Risolvi un problema e te ne crei altri 100.
Perchè non provi con gli Update Panel e Ajax, potresti inglobare il menù dentro un update panel impostato in modo che non si aggiorni...

Andrea Restucci - Web Developer

Gluck74 Profilo | Guru


>la mia pagina Default.aspx contiene un menu completo di sottomenu in Silverlight
>poichè quando si clicca su un pulsante del sottomenu ho la necessità
>che mi rimanga visualizzato il sottomenu stesso
>non posso cambiare pagina(altrimenti si ricaricherebbe il controllo
>Silverlight)
e potrebbe essere giusto...

>
>Cliccando sul link del menu di silverlight
>riesco a impostare il valore di src dell' iframe che gira su Server
>poichè esso si trova nella pagina di default che è la stessa del menu
>quindi quando vado a cercare l' Iframe "Pagina" con findcontrol lo trovo e modifico
>src per caricare la pagina richiesta
a me questo sembra un vero e proprio postback della pagina default!!!!!!
scusa, ma il codice che fa il
findcontrol("Pagina") //iframe
dove sta? da quello che dici sembra nella default.aspx

>adesso invece ho la necessità di cambiare src dalla pagina che stà nell'iframe
>quindi non essendo la default non trovo il controllo Iframe "pagina"
eeeehhhhh???? ma non è la stessa cosa di prima????????
non ho capito!!!!!!!!!



____________
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.

darkeric Profilo | Senior Member

Ok. Praticamente il codice che cambia src sta in silverlight. Che a sua volta sta nella default in questo modo tramite httpdocument riesco a cambiarlo.
Ammettiamo che carico nell iframe la pagina quotazioni.
Dalla pagina quotazioni adesso devo aprire la pagina statistiche.
Qui nasce il problema. Credo che proverò con ajax come dice il collega.

Programmatore per passione!

Gluck74 Profilo | Guru

ok, non conoscendo SilverL non avevo capito. Bene.

Dunque, quindi ora è la pagina stessa contenuta nel IFrame che effettua un postback, e tu vorresti che si sposti in una nuova pagina, sempre dentro IFrame.
Se non erro dovrebbe essere in automatico. Nel senso che il postBack (o il link) agisce all'interno del IFrame, senza influenzare il "padre", ovvero la default.

Come vorresti cambiare pagina? da un bottone che fa postback? da link?


____________
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.

darkeric Profilo | Senior Member

Bha...

mi vergogno tanto!!!!!

cosi banale che non ho neanche provato a farlo per sbaglio!!

cmq Ajax non era la soluzione ideale perche la masterpage veniva comunque ricaricata.

Grazie Gluck74



Programmatore per passione!

andrestu Profilo | Expert

>cmq Ajax non era la soluzione ideale perche la masterpage veniva comunque ricaricata.

sinceramente non so valutare in riferimento al tuo problema perchè mi son perso nei dettagli delle varie spiegazioni e non perchè hai spiegato male ma per colpa mia, poca voglia di capirne il contesto perdonami.
Per quanto riguarda la tua affermazione rispetto Ajax dipende da cosa intendi con "ricaricare", se intendi il refresh del DOM lato client allora non sono daccordo.
Gli Update panel sono stati creati appositamente per dare la possibilità di fare il refresh di solo alcune parti della pagina.

In effetti però se fai un cambio pagina allora hai detto giusto Ajax non risolve...

darkeric Profilo | Senior Member

Torno nuovamente a questo Thread.

questa volta complichiamo un pò di più le cose
Dato l' Iframe "pagina" che si trova dentro la default.aspx
e l' Iframe "Login" che si trova anch'esso nella default.aspx

devo cambiare la proprietà "src" dell' Iframe "Pagina" al click di un pulsante che si trova
dentro l' iframe "Login"

ovviamente non si trova col findcontrol perche operando dalla pagina login
la default non viene vista.

pensavo di poter referenziare la Default nella pagina di Login (<%@ Reference Page="~/Default.aspx" %>)
ma non so se è corretto e cmq mi manca come recuperare i controllo da Code-behind

ne sapete qualcosa?





Programmatore per passione!

Gluck74 Profilo | Guru

io saprei farlo da javascript. non credo si possa fare da codebehind (ogni pagina vive per conto suo, non sa dell'esistenza di un'altra pagina in un altro frame)
Quindi l'unico che le connette è il browser.

L'unica cosa che si potrebbe provare è mettere runat="server" al tag iFrame, e vedere che succede

Cosa deve fare di preciso questo pulsante? solo cambiare l'altro iframe? o mandare anche postback?

____________
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.

darkeric Profilo | Senior Member

cambio solo il valore dell' src dell' altro Iframe

anche javascript sarebbe buona come soluzione
ma a livello document col getelementbyID non lo trova l'iframe
per il motivo che hai spiegato tu.

hai accennato che dovrei cercare a livello di browser ,
quale comando javascript dovrei utilizzare?


Programmatore per passione!

Gluck74 Profilo | Guru

ok, con javascript puoi farlo.

Da una pagina dentro un IFrame, dovrebbe funzionare così:
parent.document.getElementById("idDell'altroIFrame").src



____________
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5