72 messaggi dal 18 gennaio 2007
Buongiorno a tutti.
Sto modificando una webapp che usa controlli Ajax per visualizzare via "ModalPopupExtender" delle popup di varia selezione.

Così com'è non è lenta, è da sfracellamento di "attributini": riescono a passare interi secondi solo per l'acquisizione di valori selezionati da una DropDownList e visualizzati in una TextBox.

Questo a causa di un ViewState particolarmente pesante (nonchè inevitabile).

Usando JavaScript per aprire le popup con una "window.open" la situazione cambia radicalmente ma (he he he!) ho a che fare con dei veri e propri classici "utonti" che se dovessi consegnare oggi mi subisserebbero di segnalazioni del tipo "la finestra di selezione xxx mi sparisce se clicco fuori".

Ho provato ad usare la "showModalDialog" (tanto l'app viene usata con IE) ma ad ogni PostBack viene aperta una nuova popup (senza che la precedente venga chiusa e con dimensioni radicalmente differenti da quelle che impongo alla prima) e allora ho desistito.

Ho provato a gestire, nelle varie finestre, gli eventi di "onblur" e "onfocus" forzando il focus sulle popup ma senza successo.

Ho provato anche a disabilitare ricorsivamente gli elementi del <div> principale solo per ritrovarmi con la finestra principale con il focus e completamente disabilitata.

Mi rimangono due (temo una) strade: 1) tornare ad usare il "ModalPopupExtender" disabilitando il ViewState e facendo qualche capriola di codice oppure 2) scrivere qui e sperare che qualcuno abbia un'idea a cui non ho ancora pensato.
Grazie in anticipo.
72 messaggi dal 18 gennaio 2007
Grazie. Lo sapevo ma...siamo sempre li: anche con JQuery viene visualizzato un <div> contenuto nella pagina chiamante (che in questa webapp ne contiene 2 o più) con il medesimo problema di gestione di ViewState di tre o più pagine.
Quello che sto cercando è proprio l'apertura via evento "OnClientClick" a lato client di una pagina aspx come modal popup.
Ah! Va "senza dire" che ho già pensato ad una sospensione del ViewState con memorizzazione in sessione (ho una classe Disposable che mi fornisce i dati "on demand" e, quando sono nulli li carica, tipo le "vecchie" classi VCL di Borland) e caricamento degli oggetti solo da server verso client e solamente quando la "finestra utente" del caso è davvero attiva.
Solo che, se posso, mi eviterei il lavoro.
Tutto qui.
;)))
Modificato da dinoerre il 27 luglio 2011 10.27 -
272 messaggi dal 17 settembre 2006
Ciao io ho utilizzato una tecnica tipo questa

con il metodo load carico una pagina aspx passandogli eventualmente dei parametri

 <script type="text/javascript">

        function Popup(Prod,Cat,Titolo) {
            $("#popup").load('ManageFile.aspx?Prod=' + Prod + '&Cat=' + Cat)

            .dialog({
                title: Titolo,
                resizable: true,
                draggable: false,
                modal: true,
                height: 500,
                width: 800,
                closeOnEscape: true,
                hide: 'slide',
                show:'fade'                }

            });
        }

    </script>



quando ho avuto la necessità di più pagine all'interno della dialog ho associato un iframe in questo modo


<script type="text/javascript">

        function Popup(Prod,Cat,Titolo) {
                       $("#popup").append($("<iframe id='Dettaglio' frameborder='0' style='width:100%;height:100%;border:0px' />").attr("src", 'ManageFile.aspx?Prod=' + Prod + '&Cat=' + Cat))
            .dialog({
                title: Titolo,
                resizable: true,
                draggable: false,
                modal: true,
                height: 500,
                width: 800,
                closeOnEscape: true,
                hide: 'slide',
                show:'fade'                }

            });
        }

    </script>



spero di esserti stato di aiuto e soprattutto di aver capito il problema
72 messaggi dal 18 gennaio 2007
Minkiolina! Provo immeditamente e ti dico! Grassie! (Spciù!) ;)))
72 messaggi dal 18 gennaio 2007
Prova fallita mi da questo errore: "Errore di run-time di Microsoft JScript: L'oggetto non supporta la proprietà o il metodo 'dialog'"

il mio codice è questo:

Nel tag
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

della pagina subordinata alla mia master page ho inserito:
<script src="JQuery/jquery-1.5.1.min.js" type="text/javascript"></script>

e, a seguire:
<script type="text/javascript" id="igClientScript">
<!--
function Popup()
{
$("#popup").load('Dialogs/DlgInsTyre.aspx')
.dialog
(
{
title: 'DlgInsTyre',
resizable: false,
draggable: true,
modal: true,
height: 650,
width: 680,
closeOnEscape: false,
hide: 'slide',
show:'fade'
}
);
}
...
Perchè non dovrebbe esser supportato il metodo "dialog"?
(Ri)Grassie...
272 messaggi dal 17 settembre 2006
Scusa ho dato per scontato alcune cose:

oltre alla libreria jquery

devi referenziare anche la jquery ui

e se vuoi anche i temi di jquery


jquery/1.6.1/jquery.min.js

jqueryui/1.8.1/jquery-ui.min.js

jqueryui/1.7.2/themes/start/jquery-ui.css

72 messaggi dal 18 gennaio 2007
Beh, ora non da errore.
In compenso non fa assolutamente nulla.
Temo che dovrò tornare indietro...è che stavo scommettendoci qualcosa di pesante, su questa webapp.

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.