Nicht in der Lage, die JS -Funktion auf dem ActionLink aufzurufen und die Zone in Tapestry5 zu aktualisieren

StackOverflow https://stackoverflow.com/questions/6825488

  •  26-10-2019
  •  | 
  •  

Frage

Ich habe ein Problem im Wandteppich.

Problem - Ich verwende ein Netz, um die Daten anzuzeigen. Mit jeder Zeile zeige ich eine Plus- (+) -Taste. Wenn wir auf die Plus -Schaltfläche (+) klicken, zeige ich die inneren Zeilen für diese Zeile an. Ich habe das statisch erreicht. Wenn ich statisch bedeutet, hole ich beim gleichzeitigen Lasten der Daten die Daten für innere Zeilen und speichere sie in die versteckten Felder. Wenn ich auf die Plus -Schaltfläche (+) klicke, rufe ich eine JS -Funktion auf, die das Feld versteckter Daten verwendet und die inneren Zeilen zeichne.

Jetzt gibt es eine Wendung. Ich muss das Gleiche dynamisch tun. Es bedeutet, dass ich auf der Schaltfläche Plus (+) die Daten für versteckte Zeilen abrufen und dann die JS -Funktion aufrufen muss, um die inneren Zeilen zu zeichnen. Um dies zu erreichen, habe ich Zone & ActionLink verwendet, um die Daten der inneren Zeilen dynamisch zu erhalten. Die Zone enthält die versteckten Felder, die die Daten für die inneren Zeilen enthalten. Wenn ich auf den ActionLink klicke, wird die Zone aktualisiert und holt die Daten ab, aber danach kann ich die JS -Funktion nicht aufrufen.

Hoffe ihr hat das Problem verstanden. Benötigen Sie Ihre Hilfe dringend.

Grüße,
Mahendra

War es hilfreich?

Lösung

Das Problem ist, dass Sie die JS -Funktion nicht auf der Zone -Aktualisierung aufrufen können. Es gibt also eine Lösung.

Eine Zone kann anfangs sichtbar oder unsichtbar sein. Wenn eine Zone aktualisiert wird, wird sie sichtbar gemacht, wenn nicht derzeit so. Dies wird über eine Funktion auf dem Tapestry.elementeffect Client-Side-Objekt erreicht. Standardmäßig wird die Funktion show () für diesen Zweck verwendet. Wenn Sie möchten, dass Tapestry eine andere Tapisserie aufruft.

Wenn eine Zone bereits sichtbar ist, wird eine andere Effektfunktion verwendet, um die Änderung hervorzuheben. Standardmäßig wird die Highlight () -Funktion aufgerufen, die einen gelben Verblassen ausführt, um hervorzuheben, dass sich der Inhalt der Zone geändert hat. Alternativ können Sie eine andere Effektfunktion mit dem Aktualisierungsparameter der Zone angeben: Um eine Zone ohne den üblichen gelben Highlight -Effekt zu aktualisieren, geben Sie einfach "SHOW" für den Aktualisierungsparameter an:

<t:zone t:id="myZone" t:update="show">

Sie können auch Ihre eigene JavaScript-Effektfunktion definieren und verwenden (mit Namen mit niedrigerer Fall) wie folgt:

    Tapestry.ElementEffect.myeffectname = function(element){
 YourJavascriptCodeGoesHere; };

In Ihrem Fall können Sie also wie unter dem Code verwenden

<t:zone t:id="zoneId" t:update="yourfunction" >
// contain the your code                           
</t:zone>

Wenn die Zone Aktualisierung erhält, wird Ihre Funktion aufgerufen.

Für mehr Information Zoneneffektfunktionen

Genießen.

Grüße,
Mahendra

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top