User concrol come frame

lunedì 16 novembre 2009 - 10.12

nandonando Profilo | Senior Member

Alla fine di un'operazione dovrei caricare al posto del mio ascx un'altra pagina è possibile?
Mi spiego meglio ho una pagina che all'interno ha un ascx all'interno di questo ascx vorrei alla fine di una detreminata operazione caricare un'altra pagina ma sempre all'intern odella mia pagina principale è possibile?
se si come si fa ho provato a fare redirect ma la cambia per intero.
Grazie
http://www.gustoroma.it

luigidibiasi Profilo | Guru

Puoi operare in diversi modi:

- usando gli iframe (deprecato)
- usando il tag object con attributi type=text/html e data=URL da visualizzare

<object type="text/html" data="URI">
</object>

Cambiando il valore a data cambi anche ciò che viene visualizazto nel tag Object.
Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/

nandonando Profilo | Senior Member

Ma la mia pagina gia è creata e la struttura deve necessariamente rimanere cosi solo che all'interno del mio ascx dovrei fare una cosa tipo response.redirect ma solo dell'ascx.
Non sò se è molto chiaro scusate.
http://www.gustoroma.it

luigidibiasi Profilo | Guru

>Ma la mia pagina gia è creata e la struttura deve necessariamente
>rimanere cosi solo che all'interno del mio ascx dovrei fare una
>cosa tipo response.redirect ma solo dell'ascx.

Si credo di aver capito.

Purtroppo l'ascx viene renderizzato come parte della pagina stessa (un unico html) quindi devi almeno modificarlo...

Se puoi cambiare la struttura dell'ascx puoi procedere così: (senza fare nulla nel resto della pagina)

aggiungi un object o un iframe(come quello di cui ho parlato prima), nell'usercontrol con attributi css

{
visibility:hidden /** questo controllo non verrà mostrato a video. **/
width:100%;
height:100%;
z-index:100; /** Se viene reso visibile viene visualizzato sopra tutto il resto**/
}

quando termini l'operazione invece di usare response.redirect utilizzi javascript e vai a modificare la proprietà css da visibility:hidden a visibility:visible (in modo che il contenuto dell'usercontrol venga messo in secondo piano rispetto al contenuto dell'object)

inoltre sempre con javascript modifichi il valore dell'attributo data nell'url da visualizzare...

Chiaramente questa soluzione può essere adottata se con javascript riesci a rilevare che l'operazione è terminata...

Scusa se sono poco chiaro ma parlo per linee generali perchè non conosco la struttura della pagina e del controllo...



Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/
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