Fancybox - ASP.NET-Schaltfläche funktioniert nicht
Ich habe gerade bestimmt mit Firebug, dass bei der Fancybox-Fenster wird erstellt, es nimmt alle meine ASP.NET Kontrollen (enthalten in DIV-tag) und stellt Sie außerhalb der FORM-Tags. Also ich denke, das ist der Grund, warum dann ASP.NET die Schaltfläche tut nichts - es ist außerhalb der form.
So, haben Sie irgendwelche Vorschläge, wie kann ich dies verhindern (oder zu machen, dass ASP.NET button funktioniert), andere als mit völlig anderen modalen dialog?
EDIT: OK, die Leute berichten, dass einige der vorgeschlagenen Korrekturen sind für Sie tätig auf bestimmte Versionen. Also, Lesen Sie alle Antworten /nach unten scrollen für wie dieses Problem zu beheben auf verschiedenen Fancybox-Versionen.
InformationsquelleAutor der Frage kape123 | 2010-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Sie brauchen, um Sie zu ändern (irgendwo um die Linie 719 der jquery.fancybox-1.3.1.js):
zu
InformationsquelleAutor der Antwort derek
Für alle brauchen eine einfache Antwort auf dieses problem mit Fancybox version 2 gibt es einen viel einfacheren Weg, es zu tun. Alles, was Sie tun müssen, ist hinzuzufügen parent: "form:" im code zB
dann wird das Anhängen der fancybox-Elemente in den dom innerhalb des form-tag anstatt innerhalb des body-Tags.
InformationsquelleAutor der Antwort Myke Black
Fancybox Version 2.1.4
Ändern Sie diese 2 Zeilen
Um Die Zeile 2069 :
zu
und um die Zeile 1960 :
zu
Konnte man auch mit appendTo aber das ist bis zu Ihnen. In meinem Fall brauchte ich prependTo.
InformationsquelleAutor der Antwort VRC
Ich habe versucht, herauszufinden, dieses problem die ganze Woche, ich habe nicht wirklich hatte Glück
Ich kam gerade über diesem Artikel
http://usmanshabbir.blogspot.com/2010/10/click-server-button-problem-in-jquery.html
Erklärt, wie man postback arbeiten mit dem jQuery UI-Dialog-box.
Wenn es nicht 100% notwendig, um die Verwendung fancy box, dann ist diese Methode definitiv einen Versuch Wert, es hat mich gerettet eine Menge ärger heute.
InformationsquelleAutor der Antwort Andrew Cassidy
Ohne änderung der FancyBox-Quelle, setzen Sie diese nach dem FancyBox-script (außerhalb der load-Ereignissen!!!):
InformationsquelleAutor der Antwort jerone
jquery.fancybox-1.3.4.js Zeile 1040
Funktioniert (meine asp:Button tut postback) für mich auf FF und IE9, vielen Dank für die Lösung
InformationsquelleAutor der Antwort Boris
Dem oben genannten update hat bei mir nicht funktioniert, die fancybox war immer noch außerhalb der form. Habe ich dann auskommentiert, diese 6 Zeilen in jquery.fancybox-1.3.2.js und fand Sie nicht benutzt würden, überhaupt in meinem code.
Habe ich eine Suche auf 'Körper' in der fancybox js-Dateien und verändert es 'bilden', in:
jquery.fancybox-1.3.2.js (ln 484)
jquery.fancybox-1.3.2.pack.js (ln 27, ln 41)
Der fancybox wird jetzt immer Hinzugefügt, um die form und die server-Steuerelemente arbeiten.
InformationsquelleAutor der Antwort nd2010
Fancybox Version: 2.1.2
Line 1782 von jquery.fancybox.js
Ändern:
:
InformationsquelleAutor der Antwort Andy
Verwende ich Fancybox 1.3.4 zeigen eine aspx-Seite als popup-Seite in der fancybox iframe. Aber-button im popup-Seite nicht zu postback. Ich habe nichts ändern, wie Sie vorher sagten. Vielmehr habe ich Folgendes.
InformationsquelleAutor der Antwort shatharkhan
Fancybox 1.3.4 tatsächlich postback.
Aber wenn geschlossen ist OnClientClick, bevor Sie server-side-click-Ereignis wird es nicht-postback .So das oben ist Die Lösung für dieses problem.(Hinzufügen doPostBack in der javascript-Funktion).
Normalerweise Fancybox 1.3.4 nicht-postback ohne jede änderung in seine .Js-Dateien. Aber, um es zu schließen , müssen, schreiben Sie diese Zeile
ScriptManager.RegisterClientScriptBlock(this, GetType(), "", "parent.$.fancybox.close();", true);
im server-side-click-Ereignis. Nur dann sowohl Server-Side-event aufgerufen wird und die fancybox wird auch geschlossen.Aber Fancybox 2.1.3 (die Letzte) nicht-postback-Ereignis aus, nachdem es geschlossen ist OnClientClick.
InformationsquelleAutor der Antwort shatharkhan
Erfrischend, wenn die Eltern eine Lösung, die dem Zweck dient, können Sie aktualisieren Sie onClosed:
InformationsquelleAutor der Antwort Israel Margulies
Ohne jede änderung in der fancybox js-Bibliothek-Datei, was für mich funktioniert war unten,
Habe ich verschoben in die fancybox div innerhalb des form-tag, und jetzt server-side-Taste funktioniert wie ein Charme 🙂
Alle die besten.. ich hoffe, das wird auch für Sie arbeiten. .:)
InformationsquelleAutor der Antwort Shailesh Mishra
Brauchen Sie nicht zu ändern, beliebigen code oder einer beliebigen Bibliothek... Nur versuchen, diese..
InformationsquelleAutor der Antwort Kemal Can ÖZÇELİK
Hier ist die schlechteste Lösung, aber es funktionierte für mich. Ich brauchte faceybox und codebehind zur gleichen Zeit. Richten Sie Ihre fancy box laden, wenn die Schaltfläche geklickt wird. Dann onClosed die übergabe von Werten an ein anderes C# - Seite und machen Sie die code-behind-Seite Laden.
und dann nur die "class=" Ding hier:
InformationsquelleAutor der Antwort Michael