Fancybox - ASP.NET le bouton ne fonctionne pas
J'ai juste déterminé à l'aide de Firebug que lorsque Fancybox fenêtre est créée, elle prend en fait l'ensemble de mes ASP.NET contrôles (contenues dans la balise DIV) et les met à l'extérieur de la FORME de la balise. Donc je suppose que c'est la raison pourquoi ASP.NET le bouton ne fait rien - il est placé à l'extérieur de la forme.
Donc, avez-vous des suggestions sur comment je peux empêcher cela (ou le faire que ASP.NET bouton de travail), d'autres que l'aide de complètement différent de dialogue modale?
EDIT: OK, les gens sont des rapports que certaines propositions de corrections sont de travailler pour eux sur certaines versions. Donc, assurez-vous de lire toutes les réponses /faites défiler vers le bas pour savoir comment résoudre ce problème sur différents Fancybox versions.
- m'a sauvé une question, j'étais sur le point de demander à cet. l'amour de manière automatique une question relative à l'inscription.
- J'ai essayé de déboguer ce pendant 6 heures. Je suis content d'avoir enfin trouvé.
- Ceux qui sont encore confrontés à la suite de problème ce lien.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de changer cela (quelque part autour de la ligne de 719 jquery.fancybox-1.3.1.js):
à
Pour toute personne ayant besoin d'une réponse simple à ce problème à l'aide de Fancybox version 2 il y a un moyen beaucoup plus facile de le faire. Tout ce que vous avez à faire est d'ajouter parent: "la forme:d'abord" dans le code, par exemple
puis cela va ajouter la fancybox éléments dans le dom à l'intérieur de la balise form, plutôt qu'à l'intérieur de la balise body.
Fancybox Version 2.1.4
Modifier ces 2 lignes
Autour De La Ligne 2069 :
à
et autour de la Ligne de 1960 :
à
Vous pouvez également utiliser appendTo mais c'est à vous de voir. Dans mon cas, j'avais besoin de prependTo.
J'ai été à essayer de comprendre ce problème toute la semaine, je n'ai pas vraiment eu de la chance,
Je viens de tomber sur cet article
http://usmanshabbir.blogspot.com/2010/10/click-server-button-problem-in-jquery.html
Qui explique comment obtenir la publication de travailler avec jQuery UI boîte de Dialogue.
Si ce n'est pas 100% nécessaire pour l'utilisation de fantaisie boîte de cette méthode est certainement la peine d'essayer, il m'a sauvé beaucoup de tracas aujourd'hui.
Sans modifier la source FancyBox, le mettre après le script FancyBox (en dehors de toute charge des événements!!!):
jquery.fancybox-1.3.4.js ligne 1040
Œuvres (mes asp:Button ne postback) pour moi sur FF et IE9, merci pour la solution
Ci-dessus mise à jour ne fonctionne pas pour moi, fancybox est toujours ajouté à l'extérieur de la forme. J'ai ensuite commenté ces 6 lignes jquery.fancybox-1.3.2.js et constaté qu'ils n'étaient pas employés à tous dans mon code.
J'ai fait une recherche sur le "corps" dans la fancybox fichiers js et il a changé de forme en:
jquery.fancybox-1.3.2.js (ln 484)
jquery.fancybox-1.3.2.pack.js (ln 27, ln 41)
La fancybox est maintenant ajouté à l'écran et les commandes de serveur sont de travail.
Fancybox Version: 2.1.2
Ligne de 1782 jquery.fancybox.js
Changer cela:
À ceci:
J'utilise Fancybox 1.3.4 pour afficher une page aspx dans une fenêtre contextuelle de la page dans la fancybox iframe. Mais le bouton dans le menu contextuel de la page ne cause pas de publication. Je n'ai pas changer quoi que ce soit comme vous l'avez dit avant. Plutôt je n'ai la suite.
Fancybox 1.3.4 en fait de la publication.
Mais si est fermé dans OnClientClick qui est avant côté serveur, cliquez sur événement il l'habitude de publication .Ce qui est Au dessus est la solution à ce problème.(L'ajout de doPostBack en fonction javascript).
Normalement Fancybox 1.3.4 n'publication sans aucun changement dans sa .Js fichiers. Mais pour le fermer , besoin d'écrire cette ligne
ScriptManager.RegisterClientScriptBlock(this, GetType(), "", "parent.$.fancybox.close();", true);
à côté serveur cliquez sur l'événement. Alors seulement les deux serverside événement est appelé et fancybox ferme également.Mais Fancybox 2.1.3 (dernière version) ne postback événement après qu'il est fermé dans OnClientClick.
Si l'actualisation de la mère est une solution qui sert le but, vous pouvez actualiser onClosed:
Sans aucun changement dans fancybox bibliothèque js fichiers, ce qui fonctionne pour moi a été au-dessous,
J'ai déplacé le fancybox div à l'intérieur de la balise form, et maintenant, côté serveur bouton fonctionne comme un charme 🙂
Tous les meilleurs.. j'espère que cela fonctionnera pour vous aussi. .:)
Vous n'avez pas besoin de modifier tout code ou une bibliothèque..., Juste essayer ce..
Heres la pire solution possible, cependant, il a travaillé pour moi. J'avais besoin de faceybox et du code-behind en même temps. Configuration de votre boîte de fantaisie à charge lorsque le bouton est cliqué. Puis onClosed transmettre des valeurs d'un autre C# page et faire le code derrière au Chargement de la Page.
et alors seulement la "class=" chose ici: