Frage

Ich habe eine ASP.Net Web-Seite, die eine Master-Seite Vorlage verwendet.

Die Seite ein Update mit einigen grundlegenden AJAX-Funktionalität hat (den Wert einer Dropdownlist ändern und die Update wird aktualisiert). Das alles funktioniert gut.

Ich habe auch einen Link, der eine nyromodal Modal, innerhalb des modalen erscheint, eine andere ASP.Net Web-Formular .. geladen ist, weil ich möchte diese Seite selbst seine eigene Funktionalität haben, und nicht nur eine statische Seite sein etc. Seine ein „Create New“ Dialog genau zu sein. So ist es erstellt einen neuen Datensatz, dann, wenn es geschlossen wird Sie gehen zurück auf die Haupt „Liste der Datensätze“ Seite etc.

Ich verwende den folgenden jQuery-Code die nyromodal Anrufe zu initiieren. Dieser Code enthält auch verschiedene andere Verbesserungen und Einstellungen nyromodal mehr kompatibel mit ASP.Net zu machen, da dies über die fünfte aufeinanderfolgende Inkompatibilität ich konfrontiert habe und zwischen nyromodal und ASP.Net gelöst (Lektion: Bleiben Sie von ASP.Net weg)

$(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();
      });
    });
});

Dieser Code funktioniert sehr gut (Danke Brian), da es ein paar andere Probleme mit ASP.Net und nyromodal arbeiten gemeinsam löst. Seine Verwendung sogar den Blocker: #aspnetForm Bit, das nyromodal hält von außerhalb der Haupt-Postbacks Form namens aspnetForm, die ASP.Net gehen, die eine fast identisches Problem .

ABER ..

Die Web-Seite, die ich in meine modal bin Laden, ist auch ein .Net Web-Formular. So hat es auch sein eigenes eingebautes in Postbacks aspnetForm natürlich. Also, wenn die modale erscheint und ich verwende FireBug die DOM-Struktur zu überprüfen, ich habe eigentlich zwei ASP.Net Formen jetzt (verschachtelte). Und weil nyromodal im Wesentlichen nur ein div (oder ein paar divs) werden die Formulare-Tags im Wesentlichen verschachtelt ist.

Also ich denke, diese Dinge große Zeit schraubt. Es stürzt tatsächlich IE7 total (fatal Ausnahmen). IE7 + FireFox: Wenn ich den Dialog schließen, wird meine Haupt Webformular nicht mehr Postback. Ich denke, die durch die 2-Formular-Tags sehr verwirrt worden, dass es vor einem Augenblick ist.

Es soll eine wirklich einfache Anforderung zu sein, um ein ASP.Net Web-Formular zu öffnen, wie der Inhalt Ihrer modale nyromodal verwenden. Ich mache es auf ASP.Net Schuld für so lahm sind und einen obligatorischen „Form“ Tag auf jeder Seite setzen. Wenn ich PHP wurde mit, habe ich nicht eines dieser Probleme erlebe ich heute hatte, aber ich bin mit ASP.Bloat zu Arbeitszwecken stecken.

Alle Gedanken oder Einsicht sehr zu schätzen! :)

War es hilfreich?

Lösung

Haben Sie darüber nachgedacht, die Seite in der modal als iFrame geöffnet wird, so dass der Inhalt (das neue Formular-Tag, etc.) nicht mit der Host-Seite einmischen?

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

Andere Tipps

Im eigentlich die Person, die diese Frage berichtet. Erstens haben u versucht, die ASP.NET nyroModal dass jimbobmcgee Plugin (auf der gleichen Seite u verknüpft) entwickelt ? Ich habe noch nicht, wie ich die Zeit coludnt finden durch die enthaltene Dokumentation zu gehen. Wenn u tho tun, lassen Sie mich wissen, wie ich für u funktioniert.

Dies ist eigentlich ein perfektes Timing ... Eine weitere Alternative, das ist, was Im mitten in der Untersuchung wird eine normale HTML-Seiten anstelle von WebForms im Modal verwenden. Also, ich beabsichtige, meinen serverseitigen Code innerhalb eines Webservice zu wickeln, und verwenden Sie jQuery einen Anruf, um es zu machen, und eine JSON-Antwort zurück.

Vergib die Richtigkeit meiner Erklärung, wie ich gerade mit Webdiensten und Seitenmethoden begonnen, so lerne ich auch. Dies ist der Grund für jemanden in meinem fragen ein einfaches „Hallo Welt“ Beispiel zu veröffentlichen.

Ich hoffe, das hilft ein wenig.

Wenn Sie diesen in dem Kopf einer Seite. Es ermöglicht Nyro modal Schließung eines Postbacks zu simulieren.

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

nur document.location ändern, und es wird es gehen, wenn das Fenster geschlossen wird.

Die einfachste Lösung, die ich gefunden habe, ist sofar die Popup-Fenster als iframe zu laden, nicht inline oder über AJAX. Nur ein Gedanke. :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top