Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    207

    Problema con ASP.NET + finestre modali + redirect + AJAX

    Ho il seguente problema: apro una finestra modale contenente un bottone che deve fare semplicemente Response.Redirect("pagina.aspx")
    Ebbene, se introduco lo ScriptManager di Ajax e il pannello aggiornabile, dopo la pressione del tasto si apre una nuova finestra con all'interno "pagina.aspx", mentre senza ScriptManager e pannello aggiornabile la nuova pagina si apre nella stessa finestra modale, che è ciò che voglio fare.

    C'è una soluzione a questo?

  2. #2
    Un buon punto di partenza è abolire le finestre modali (e i popup in generale). Danno solo una marea di problemi, primo tra tutti l'impossibilità di evitare che vengano memorizzate in cache.
    Dovresti cercare di orientarti verso una soluzione standard, cioè a finestra unica.

    In ogni caso se non posti il codice che utilizzi è impossibile fare un analisi.
    Sgro - Webmaster, programmazione c# e progettazione database.
    Non si forniscono soluzioni in privato.
    Non si fornisce la "pappa pronta".

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    207
    Le finestre modali nel progetto di cui mi occupo sono indispensabili in quanto si tratta di un applicativo web, non di un semplice sito, per cui ho la necessità di far aprire una finestra a parte che impedisca l'accesso a quella chiamante finché l'utente non ha fatto le sue elaborazioni nella modale che poi chiuderà; la modale quindi passerà un paramentro alla chiamante che si aggiornerà di conseguenza. Inoltre il fatto che non vengano memorizzate nella cache è un bene ai fini dell'applicativo.

    Ma a parte questo, il codice è complesso da riportare, ma in linea di principio è così: dalla finestra chiamante tramite un bottone apro una finestra modale con Javascript:

    function openModal()
    {
    var modalResult = window.showModalDialog('modale.aspx', document.forms[0].campo.value, '');
    if (typeof(modalResult) != 'undefined')
    {
    document.forms[0].campo.value = modalResult;
    }
    }



    Nella finestra modale "modale.aspx" ho un tasto (chiamiamolo "Redirect") che, se premuto, deve effettuare un redirect verso un'altra pagina, "pagina.aspx":

    Protected Sub btnRedirect_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRedirect.Click
    Response.Redirect("pagina.aspx")
    End Sub



    Poiché ho messo lo ScriptManager e il pannello aggiornabile di AJAX in "modale.aspx", quando premo sul tasto "Redirect" si apre una nuova finestra con all'interno "pagina.aspx"; senza Scriptmanager e pannello aggiornabile, "pagina.aspx" si apre nella modale...

    Ho già anche provato a mettere in "modale.aspx" il tag <base target="_self" />, ma non è servito a niente.
    Cosa posso fare?

  4. #4
    Le finestre modali nel progetto di cui mi occupo sono indispensabili
    No, non lo sono. Non c'è giustificazione che tenga. E' possibile sviluppare qualunque tipo di applicazione web, anche estrememente complessa, senza l'uso di finestre modali e popup. Parlo per esperienza e non per sentito dire.


    Inoltre il fatto che non vengano memorizzate nella cache è un bene ai fini dell'applicativo
    Qua hai proprio capito male. Ho detto che è impossibile IMPEDIRE AI BROWSER DI METTERLE IN CACHE. In parole povere vengono sempre messe in cache, anche se sugli header http specifichi il contrario. Questo come puoi ben immaginare crea enormi problemi perchè ogni volta che fai una modifica al codice, gli utenti non la vedranno finchè non svuotano i file temporanei.
    Sgro - Webmaster, programmazione c# e progettazione database.
    Non si forniscono soluzioni in privato.
    Non si fornisce la "pappa pronta".

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    207
    OK, non ho letto il "di evitare", quindi ho capito male.
    Comunque l'applicativo è già così (con le modali) e non posso modificarlo. C'è o no una soluzione?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    207
    Risolto! Basta aggiungere un trigger postback per il tasto "Redirect" nei trigger del pannello aggiornabile.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.