Domanda

Ho una pagina web ASP.Net, che utilizza un modello di pagina master.

La pagina ha un UpdatePanel con alcune funzionalità di base di AJAX (cambiare il valore di una DropDownList e l'UpdatePanel verrà aggiornata). Questo è tutto funziona bene.

Ho anche un link che apre una modale nyromodal, all'interno del modal, un altro modulo web ASP.Net viene caricato .. perché voglio questa pagina stessa per avere la propria funzionalità e non essere solo una pagina statica ecc La sua un dialogo "Crea nuovo" per essere precisi. Così si crea un nuovo record, poi quando si chiude si torna alla principale "elenco dei record" page etc.

Sto utilizzando il seguente codice jQuery per avviare le chiamate nyromodal. Questo codice include anche diversi altri ritocchi e impostazioni per rendere nyromodal più compatibile con ASP.Net, in quanto questo è di circa l'incompatibilità successiva quinta Ho affrontato e risolto tra il nyromodal e ASP.Net (Lezione: Stare lontano da ASP.Net)

$(document).ready(function(){
    $(function(){
      $('.modal').live('click', function(evt){
        $(this).nyroModalManual({'blocker':'#aspnetForm',minWidth:640,minHeight:400,endShowContent:function(elt, settings) { $('input:text:first', elt.content).focus(); }});
        evt.preventDefault();
      });
    });
});

Questo codice funziona molto bene (Grazie Brian) quanto risolve un paio di altri problemi con ASP.Net e nyromodal lavorano insieme. La sua anche utilizzando il bloccante: bit #aspnetForm che si ferma nyromodal da andare al di fuori della forma postback principale di ASP.Net chiamato aspnetForm, che si propone di risolvere un problema quasi identico .

MA ..

La pagina web che sto caricando nella mia modale, è anche un modulo web Net. Così ha anche un proprio postback built-in aspnetForm naturalmente. Così, quando viene visualizzato il modal e lo uso Firebug per controllare la struttura DOM, io in realtà sono due forme di ASP.Net ora (annidati). E poiché nyromodal è essenzialmente solo un div (o pochi div), i tag di modulo sono essenzialmente annidati.

Quindi penso che questo sta avvitando le cose alla grande. In realtà è schiantarsi IE7 totalmente (eccezioni fatali). IE7 + FireFox: Quando chiudo il dialogo, il mio modulo web principale non postback più. Credo che la sua stata molto confusa dai 2 tag di modulo che c'erano un momento fa.

Si dovrebbe essere un requisito molto semplice per essere in grado di aprire un modulo web ASP.Net come il contenuto della vostra modale utilizzando nyromodal. Lo faccio dare la colpa a ASP.Net per essere così zoppo e mettere un tag obbligatorio "forma" in ogni pagina. Se stavo usando PHP, non avrei vissuto uno di questi problemi che ho avuto oggi, ma mi sono bloccato con ASP.Bloat per motivi di lavoro.

Ogni pensiero o una visione molto apprezzato! :)

È stato utile?

Soluzione

Avete preso in considerazione l'apertura della pagina nella modale come iFrame in modo che il suo contenuto (il nuovo tag form, etc.) non interferiscono con la pagina host?

$(this).nyroModalManual({type:'iframe'});

Altri suggerimenti

Im in realtà la persona che ha segnalato questo problema. In primo luogo, hanno u provato l'ASP.NET nyroModal plugin che jimbobmcgee (sulla stessa pagina u legata a) sviluppato ? Non ho ancora, come ho coludnt trovare il tempo per passare attraverso la documentazione contenuta. Se u fare tho, fatemi sapere come posso funziona per u.

Questo è in realtà un tempismo perfetto ... Un'altra alternativa, che è ciò che Im in mezzo a indagare, sta usando le normali pagine HTML, invece di WebForms nel modale. Così, ho intenzione di avvolgere la mia codice lato server all'interno di un webservice, e utilizzare jQuery per effettuare una chiamata ad esso, e restituire una risposta JSON.

Perdona l'accuratezza della mia spiegazione, come ho appena iniziato con webservices e metodi di pagina, in modo da sto anche imparando. Da qui il motivo il mio chiedendo a qualcuno di inviare un semplice esempio "Ciao Mondo".

La speranza che aiuta un po '.

Se metti questo nella testa di una pagina. Permette di chiusura modale Nyro per simulare un postback.

<script type="text/javascript">
$(document).ready(function(){$.nyroModalSettings({
  modal: true,minWidth: ###,minHeight: ###,
  endRemove:function(){
   document.location='pageYouWantToRefresh.aspx';
  }    
});});  
</script>

basta cambiare document.location e andrà lì quando la finestra si chiude.

La soluzione più semplice che ho trovato SOFAR è quello di caricare la finestra pop-up come un iframe, non in linea o tramite la tecnologia AJAX. Solo un pensiero. :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top