Pas en mesure d'appeler la fonction JS sur le ActionLink, utilisé pour mettre à jour la zone Tapestry5

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

  •  26-10-2019
  •  | 
  •  

Question

Je suis face à un problème dans la tapisserie.

Problème - J'utilise une grille pour afficher les données. chaque ligne je suis un bouton Plus Affichage (+) en. lorsque l'on clique sur le bouton Plus (+) puis je vais afficher les lignes intérieures pour cette ligne. J'ai réalisé cette statiquement. Statiquement moyens, lorsque la grille charger les données dans le même temps i extraire les données pour les lignes intérieures et le stockent dans les champs cachés. quand je clique sur le signe plus (+) bouton puis je vais appeler une fonction JS qui utilisent le champ Données cachées et dessine les lignes intérieures.

Maintenant, il y a une torsion. Je dois faire la même chose dynamiquement. Cela signifie sur le clic de bouton Plus (+) je dois récupérer les données pour les lignes cachées, puis appeler la fonction JS pour dessiner les lignes intérieures. Pour ce faire, je l'ai utilisé Zone et ActionLink pour obtenir les données de lignes intérieures dynamiquement. Zone contient les champs cachés qui contiennent les données pour les lignes intérieures. quand je clique sur le ActionLink, Zone se rafraîchir et récupérer les données, mais après que je ne suis pas en mesure d'appeler la fonction JS.

espère que vous avez compris le problème. Besoin de votre aide de toute urgence.

Cordialement,
Mahendra

Était-ce utile?

La solution

Problem is that you are not able to call the JS function on Zone refresh. so there is one solution.

A Zone may be initially visible or invisible. When a Zone is updated, it is made visible if not currently so. This is accomplished via a function on the Tapestry.ElementEffect client-side object. By default, the show() function is used for this purpose. If you want Tapestry to call a different Tapestry.ElementEffect function when updates occur, specify its name with the zone's show parameter.

If a Zone is already visible, then a different effect function is used to highlight the change. By default, the highlight() function is called, which performs a yellow fade to highlight that the content of the Zone has changed. Alternatively, you can specify a different effect function with the Zone's update parameter: To have Tapestry update a zone without the usual yellow highlight effect, just specify "show" for the update parameter:

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

You may also define and use your own JavaScript effect function (with lower-case names), like this:

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

So in your case you can use like below code

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

so when Zone get refresh it will call yourfunction.

for more info Zone Effect Functions

Enjoy.

Regards,
Mahendra

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top