2012-04-04 19 views
0

Ich verwende asp.net C# und jqueryladen jquery in asp.net Seite

ich eine Seite mit zwei Update (Update = bedingt) erstellt und in jedem gibt es eine Form mit Suchfiltern (Name, Beschreibung usw.)

Jede Form eine Taste hat, die, wenn sie gedrückt werden in jQuery (function ToggleAdvOptions erstellt erweiterte Suchoptionen durch einen Effekt anzuzeigen, wenn Sie auf die Schaltfläche klicken erweitert ein div und wenn Sie zurückkommen Verträge drücken)

Verwenden Sie zum Laden der jquery-Funktionen das folgende Skript:

<script type="text/javascript"> 
     function load() { 
     var prm = Sys.WebForms.PageRequestManager.getInstance(); 
     prm.add_endRequest(function() { 
      BindEvents(); 
     }); 
    } 

Dann rufe ich die Funktion load(), aus dem Körper onload Ereignis der Seite:

<body onload="load();"> 

Das Problem ist, dass wenn ich eine Postbacks aus dem UpdatePanel1, und ich dann Klicken Sie auf die Schaltfläche, um erweiterte Optionen zu zeigen UpdatePanel2, ToggleAdvOptions-Funktion wird zweimal ausgeführt. Der Effekt ist, dass der resultierende div erweitert und dann kontrahiert

Wer weiß, wie man das Problem löst?

Mit freundlichen Grüßen

+0

Ich weiß nicht, vielleicht vermisse ich etwas, aber ich denke, Sie fehlen hier einige jQuery-Code in Ihrer Frage? – Rumplin

+0

Das ist wirklich das "Problem" mit Update-Panels, sie laden die ganze Seite neu und dann einfach den relevanten Inhalt in das Panel. Aus diesem Grund binden Sie das gleiche Ereignis zweimal, können Sie nicht einfach eine streitende '$ (selector) .click (function() {})' statt? – RemarkLima

+0

Ich würde prüfen, überhaupt keine Update-Panels zu verwenden. Ich fand sie zu schmerzhaft und ersetzte sie durch Ajax-Anrufe. Sehen Sie diesen Blogpost: http://encosia.com/why-aspnet-ajax-updatepanel-are-dangerous/ – servarevitas3

Antwort

0

Ich nehme an, Sie haben die folgende bereits auf Ihrer Seite:

  1. Ein Scriptmanager-Steuerelement.
  2. Sie haben Trigger für Ihre Updatepanel-Steuerelemente deklariert, z.

       <Triggers> 
           <asp:AsyncPostBackTrigger ControlID="Button1" /> 
          </Triggers> 
    

Wenn es unterscheidet, oder arbeitet noch nicht mit den Auslösern erklärt, sollte ein bisschen mehr Code enorm für uns, das Problem Sie konfrontiert sind, zu verstehen helfen.