jQuery Dialog wird nach jedem Ajax PostBack um ein weiteres mal geöffnet

meste

Erfahrenes Mitglied
Hallo allerseits!

Habe folgendes Problem. Jedesmal wenn ich mit ajax einen PostBack verursache und danach ein jQuery-Dialog öffne wird dieser immer um ein weiteres geöffent.
Also am Anfang wenn ich das Dialog öffne wird es normal angezeigt.
Im Dialog muss ich mittels ajax eine ASP Methode aufrufen um gewisse Tätigkeiten zu speichern. Sobad dieser Abgeschlossen ist und ich das Dialog erneut öffnen möchte, wird dieser ein zweites mal angezeigt. Und danach ein drittes mal usw. Habe irgendwo gelesen das bei jedem Ajax PostBack das DOM irgendwie verloren geht oder ähnlich und fand die pageLoad-Methode. Auch dieser hat keine Wirkung auf das genannte Phenomän.
Hier der jQuery-Code
Code:
         <script language="javascript" type="text/javascript">
                function pageLoad(sender, args) {
                    $(document).ready(function () {
                        $('div.GalDialog').dialog({
                            autoOpen: false,
                            modal: true,
Wie kann ich das verhindern das der jQuery Dialog mehrfach angezeigt wird.
Bitte um dringende unterstützung.

Danke und Lg
 
Hi,

mit so wenig Code und weiterführenden Informationen ist es schwer etwas zu sagen. Eine Vermutung habe ich jedoch - es wird mit jedem Request ein neues DIV mit der Klasse "GalDialog" ins Dokument eingefügt. Entsprechend erhöht sich auch die Anzahl der Dialoge.

Ciao
Quaese
 
Ja, die vermutung habe ich auch aber wie kann ich das verhindern.

mit so wenig Code und weiterführenden Informationen ist es schwer etwas zu sagen.
Daran solls nicht scheitern. Ich dachte das dieses Problem in Kombination mit jQuery und ASP bereits bekannt ist und hoffte auf einen Gedankenfehler meinerseits, oder ähnliches.

So, das DIV welches als Dialog angezeigt wird sieht so aus
Code:
<div id="divGalDialog" class="GalDialog">
        <table>
            <tr>
                <td colspan="3" align="center">
                    <asp:Label ID="lblGalDialogTitle" runat="server" CssClass="BodyTXTW12Block" ></asp:Label>
                </td>
            </tr>
            <tr>
                <td colspan="3" align="center">
                    <asp:Image ID="imgGalViewer" runat="server" CssClass="GalViewer" BorderWidth="1px" ClientIDMode="Static" BorderStyle="solid" BorderColor="#ffffff" />
                </td>
                <td align="center" style="width:100%;">
                    <asp:LinkButton ID="lnkDialogClose" runat="server" CssClass="WL12" OnClientClick="$('div.GalDialog').dialog('close'); return false;"/>
                </td>
            </tr>
        </table>
    </div>

Das jQuery Dialog habe ich wie folgt definiert.
Code:
$('div.GalDialog').dialog({
    autoOpen: false,
    modal: true,
    position: 'center',
    overlay: { opacity: 1, background: 'black' },
    resizable: false
});


Dann habe ich noch ein Button mit welcher ich mittels UpdatePanel, ContentTemplate und Trigger den Inhalt der Seite ändere. Sobald ich den Inhalt aktualisiere habe ich das oben erwähnte Phenomän.
Code:
$('#<%=galU3.ClientID %>').live('click', function () {
$('div.GalDialog').dialog('open');
var e = document.getElementById('imgGalViewer');
$.ajax({
    type: "POST",
    url: "Dattel.aspx/getDattelValue",
    data: daten,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        var teile = msg.d.split("°");
        e.width = parseInt(teile[0]);
        e.height = parseInt(teile[1]);
        $('div.GalDialog').dialog({ position: 'center' });
        return false; // auch mit return true und ohne return probiert
    }
});
});

Die Methode die mit ajax aufgerufen wird.
Code:
[WebMethod]
public static string getDattelValue(object val)
{
    return  D.Width + "°" + D.Height
}


Nachdem ich den Inhalt mit ajax geändert habe rufe ich das Dialog mit einem ImageButton auf.
Code:
<div style="height:300px; overflow:hidden;">
  <table>
      <tr>
          <td class="GalColumns">
              <asp:ImageButton ID="galU3" CssClass="GallerieImgButtons" BorderWidth="1px" BorderStyle="solid" BorderColor="#EEADEE" runat="server" BackColor="#ffffff" />
          </td>
      </tr>
  </table>
</div>


So, das ist der gesamter Ablauf.

Ich hoffe das dies bei der Suche nach meinen Fehler weiter hilft.
Danke im vorhinein und

Lg
m.e.s.t.e
 
Zuletzt bearbeitet:
... sry das ich den Beitrag nach vorne aber hat den keiner eine Ahnung woran das liegen könnte bzw. hat den keiner solche Probleme mit jQuery gehabt****?
Wäre für jede Hilfe sehr dankbar.

Lg
m.e.s.t.e
 
Zurück