JQuery BlockUI & ASP.NET Postback Konflikte
-
22-09-2019 - |
Frage
Hintergrund:
Ich bin mit jquery BlockUI 2,31 auf jquery 1.3.2, auf ASP.NET 2.0.
Ich bin mit dem Dialog eine zeigen (in der Regel) versteckt DIV als eine Art von Pop-up-modaler Dialog, mit ASP.NET Server-Seite steuert darin (der Einfachheit halber, ein asp: Button). Es gibt keine AJAX, oder nicht garantiert jeden sein.
Eines der Dinge, jquery BlockUI tut, wenn Sie es einige HTML-Elemente passieren -. Ist es die Steuerung von seinem Platz in der Seite zu entfernen, und hängen Sie ihn an die Körper
ASP.NET 2.0 scheinen Kontrollen zu wollen, dass Post zurück in der Form sein Sie mit $ finden (# aspnetForm). jquery BlockUI gerade bewegte sich an die Körper , so dass die Postbacks nie Brände .
Die Methode eine Instanzmethode ist und wird wahrscheinlich nicht funktionieren gut als statische (Referenzen angemeldeten Benutzer und Seite Kontrollen ...)
Ich habe einige graben getan:
I modifizierte jquery BlockUI anhängen zu der Form (und mit dem Selektor rang den Block zu entfernen), aber es Borks IE6 und IE7 - die Overlay beginnt an der Form und der gesamte Dialog erscheint nicht in der Mitte. das Overlay Hiding ist keine Option, und ich hasse es wirklich mit dem IE-spezifischer CSS & IE-spezifischer Skript durcheinander.
Ich habe versucht, einige Schichten auf den Körper anhängt und etwas auf die Form, aber die Körperschichten zeigen immer auf der Oberseite der Form Schichten (so die lichtundurchlässige Schicht, dass Eingangsblöcke wird auch die Eingabe auf dem div blockieren Ich versuche, zeigen).
Ich bin die Lösung zu denken ist, den div Anruf mit einem versteckten Dummy-Anker des Originals Schaltfläche Postback auszuführen.
Lösung Sie sind ziemlich fest setzen die Tags innerhalb des Formular-Tag zurück, wenn Sie normale asp.net Verhalten wie die Ereignisse Feuer wollen. That being said, wenn Sie sich mit der jQuery modalen stecken geblieben sind, glaube ich nicht, die Postbacks Auslösung ist so eine schlechte Sache. Wie Sie aus der gelinkten / verknüpften Frage erwähnt, können Sie die Postbacks Referenz Sie können diese Javascript-Anruf an eine andere Taste legen, einschließlich der Taste sind Sie um außerhalb des Formular-Tag verschieben. Dies wird im Wesentlichen wireup die Postbacks und raise, dass die Kontrolle der Ereignisse wie üblich. Nicht die eleganteste Lösung, aber ich glaube, Sie auf dem richtigen Weg mit dabei sind, wenn Sie brauchen jQuery modalen zu verwenden. GetPostBackEventReference
in Ihrem Code-behind und passieren in der Kontrolle bekommen, die zu Brandereignis Sie ist wollen, wie zum Beispiel: //assuming your button is btnMyButton and
Page.ClientScript.GetPostBackEventReference(btnMyButton, null);