Führen Sie bei jeder Aktualisierung JavaScript aus dem Update-Bereich aus

8

Ich habe eine ASPX-Seite, die aus 3 Benutzersteuerelementen besteht (ascx). Ich habe ein Update-Panel, das die 3 Benutzereinstellungen wie folgt umschließt:

%Vor%

Ich zeige jedes Benutzersteuerelement getrennt an. Wenn also "UserControl1" angezeigt wird, sind die anderen zwei Benutzersteuerelemente ausgeblendet.

Inside "UserControl1" Ich habe einige asp-Steuerelemente und einige Javascript-Funktionen. Mein Problem ist, dass diese JavaScript-Funktionen nie aufgerufen werden, wenn "UpdatePanelWrapper" aktualisiert wird.

Ich habe diese Lösung versucht Ссылка , indem Sie diesen Javascript-Aufruf innerhalb von" UserControl1 "hinzufügen, obwohl es nicht funktioniert. Ich habe es nur funktioniert, wenn ich diesen Javascript-Aufruf in der aspx-Seite, aber nicht innerhalb der "UserControl1" hinzufügen.

Jede Hilfe wäre willkommen, Danke.

    
Fer 17.05.2011, 00:04
quelle

4 Antworten

11

Hier können Sie das tun ....

%Vor%     
Muhammad Akhtar 17.05.2011, 04:39
quelle
1

können Sie

verwenden

Sys.Application.add_load (WireEvents); // repariere die Verkabelung für .NET ajax updatepanel

wie

%Vor%

Oh und noch eine Sache. Sei vorsichtig mit den Funktionsnamen. Sonst wird es ein Durcheinander sein. versuche so etwas

%Vor%

Das Hinzufügen von _<%=this.ID%> zum Funktionsnamen stellt also sicher, dass jede Instanz des Steuerelements ihre eigene Funktion aufruft. Angenommen, Sie können mehrere Instanzen des Steuerelements haben. Wenn es nicht zumindest die Verwirrung beim Aufruf von WireEvents für verschiedene Controls verhindert

    
robert 17.05.2011 03:06
quelle
1

Skripte, die in der UpdatePanel-Antwort zurückgegeben werden, werden nicht ausgewertet. Wenn ich es richtig verstehe, möchten Sie einige Skriptoperationen ausführen, die in der UpdatePanel-Ansicht zurückgegeben werden.

Wenn ja, habe ich diese Frage hier beantwortet:

asp.net Eval-Skript in Ajax HTML-Antwort

    
Damian 16.06.2011 07:07
quelle
0

Idealerweise sollte sich Ihr gesamtes JavaScript direkt vor dem schließenden </body> -Tag am Ende Ihrer Seite befinden.

Wenn Sie jQuery verwenden, müssen Sie live () oder verwenden delegate () um sicherzustellen, dass diese Event-Handler auch dann aufgebläht werden, wenn die Seite aktualisiert wird.

    
Code Maverick 17.05.2011 00:08
quelle