2011-07-26 6 views
0

Tapestryでは1つの問題に直面しています。Tapestry5でゾーンを更新するために使用されたアクションリンクでJS関数を呼び出せません

問題 - データを表示するためにグリッドを使用しています。各行にプラス(+)ボタンが表示されています。プラス(+)ボタンをクリックすると、その行の内側の行が表示されます。私はこれを静的に達成しました。静的とは、グリッドが同時にデータをロードするときに、内部の行のデータを取得して非表示のフィールドに格納することを意味します。プラス(+)ボタンをクリックすると、隠しデータフィールドを使用するJS関数が呼び出され、内側の行が描画されます。

今やねじれがあります。同じことを動的にやる必要があります。プラス(+)ボタンをクリックすると、隠れた行のデータを取得してから、JS関数を呼び出して内側の行を描画する必要があります。これを達成するために、内部の行データを動的に取得するためにZone & ActionLinkを使用しました。ゾーンには、内部の行のデータを含む隠しフィールドが含まれています。私がActionLinkをクリックすると、ゾーンがリフレッシュされ、データを取得しますが、その後はJS関数を呼び出せません。

あなたが問題を理解してくれることを願っています。緊急にあなたの助けが必要です。

よろしく、
マヘンドラ

答えて

0

問題は、ゾーンのリフレッシュにJS関数を呼び出すことができないということです。 1つの解決方法があります。

ゾーンは、最初に表示されたり、見えなくなったりすることがあります。ゾーンが更新されると、 現在表示されていない場合は表示されます。これは、Tapestry.ElementEffectクライアント側オブジェクトの 関数によって実現されます。デフォルトでは です。この目的でshow()関数が使用されています。更新が発生したときにTapestryに が別のTapestry.ElementEffect関数を呼び出させたい場合、 はゾーンのshowパラメータでその名前を指定します。

ゾーンが既に表示されている場合は、別のエフェクト機能を使用して変更をハイライト表示します( )。デフォルトでは、highlight()関数は が呼び出され、ゾーンが変更された の内容を強調表示する黄色のフェードを実行します。また、あなたは、ゾーンの更新パラメータと異なる エフェクト機能を指定することができます。 タペストリーは通常の黄色のハイライトなし 効果がゾーンを更新するようにするには、単に更新パラメータのための「ショー」を指定:

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

ます。また、このように、( 小文字の名前で)独自のJavaScript効果関数を定義して使用することができます:

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

は、だからあなたの場合には、あなたはゾーンがリフレッシュ取得するときに、それはyourfunctionを呼び出すコード

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

の下のように使用することができます。 Zone Effect Functions

をお楽しみください詳細は

ありがとうございます。
Mahendra

関連する問題