Question

J'ai une page web ASP.Net, qui utilise un modèle de page principale.

La page a un UpdatePanel avec certaines fonctionnalités AJAX de base (modifier la valeur d'un DropDownList et UpdatePanel rafraîchira). Tout cela est bien fonctionne.

J'ai aussi un lien qui ouvre une nyroModal Modal, à l'intérieur du modal, une autre forme web ASP.Net est chargé .. Parce que je veux cette page elle-même d'avoir sa propre fonctionnalité et pas seulement une page statique, etc. Sa un « Créer un nouveau » dialogue pour être précis. Cela crée donc un nouveau record, puis quand il vous ferme revenir à la principale « liste des enregistrements » la page etc.

J'utilise le code jQuery suivante pour lancer les appels nyroModal. Ce code comprend également divers autres réglages et paramètres pour rendre nyroModal plus compatible avec ASP.Net, comme cela est de la 5ème incompatibilité successive que j'ai dû faire face et résolu entre nyroModal et ASP.Net (Leçon: Restez à l'écart de 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();
      });
    });
});

Ce code fonctionne très bien (Merci Brian) car il permet de résoudre deux autres problèmes avec ASP.Net et nyroModal travaillant ensemble. Son même en utilisant le bloqueur: bit #aspnetForm qui arrête nyroModal d'aller à l'extérieur de la principale forme de postback de ASP.Net nommé aspnetForm, qui vise à résoudre un problème presque identique .

..

La page Web que je suis dans mon chargement modal, est aussi une forme de Web .Net. Ainsi, il a également son propre postback intégré aspnetForm bien sûr. Ainsi, lorsque le modal apparaît et j'utiliser Firebug pour vérifier la structure DOM, j'ai en fait deux formes ASP.Net maintenant (imbriqués). Et parce que nyroModal est essentiellement juste un div (ou quelques divs), les balises de formulaire sont essentiellement imbriquées.

Je pense que ce ramone les choses beaucoup de temps. Il IE7 est en fait totalement écraser (exceptions fatales). IE7 + FireFox: Quand je ferme le dialogue, ma principale forme web ne postback plus. Je pense que son été très confus par les 2 balises de formulaire qui étaient là il y a un moment.

Il devrait être une exigence très simple pour pouvoir ouvrir un formulaire web ASP.Net que le contenu de votre modal en utilisant nyroModal. Je ne blâme sur ASP.Net d'être si boiteux et mettre une étiquette « forme » obligatoire dans chaque page. Si j'utilisais PHP, je ne l'aurais pas connu aucun de ces problèmes que j'ai eu aujourd'hui, mais je suis coincé à l'aide ASP.Bloat à des fins de travail.

Toutes les pensées ou des idées très appréciés! :)

Était-ce utile?

La solution

Avez-vous envisagé d'ouvrir la page dans le modal comme iFrame de telle sorte que son contenu (la nouvelle balise de formulaire, etc.) ne seront pas interférer avec la page d'accueil?

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

Autres conseils

Im en fait la personne qui a signalé cette question. Tout d'abord, ont u essayé le plug-in nyroModal ASP.NET qui jimbobmcgee (sur la même page u liée à) développé ? Je n'ai pas encore, comme je coludnt trouver le temps de passer par la documentation contenue. Si u ne tho, laissez-moi savoir comment je fonctionne pour u.

est en fait un timing parfait ... Une autre alternative, qui est ce que Im au milieu d'une enquête, utilise des pages HTML normales au lieu de WebForms dans le modal. Alors, je l'intention d'envelopper mon code côté serveur dans un webservice et utiliser jQuery pour faire un appel à lui, et renvoyer une réponse JSON.

Pardonnez l'exactitude de mon explication, comme je viens de commencer avec webservices et les méthodes de page, donc je suis trop d'apprentissage. D'où la raison pour laquelle je demande à quelqu'un de poster un simple « Bonjour tout le monde » par exemple.

L'espoir qui aide un peu.

Si vous mettez cela dans la tête d'une page. Il permet la fermeture modale Nyro pour simuler une publication.

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

il suffit de changer document.location et il y aller quand la fenêtre se ferme.

La solution la plus simple que j'ai trouvé est de charger sofar la fenêtre pop-up comme un iframe, pas en ligne ou via AJAX. Juste une pensée. :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top