現在、表形式のデータにdisplaytagを使用していますが、ユーザーが行をクリックすると、ページを更新せずに特定の行の詳細が表示される「kayak.comのような」インターフェースを作成したいと思います。
たとえば、行1の[詳細]リンクをクリックする前に。
row1 | col1 | col2 | col3 |col4|詳細
row2|col1 | col2 | col3 |col4|詳細
row3|col1 | col2 | col3 |col4|詳細
クリック後:
row1 | col1 | col2 | col3 | col4 | Detail
-------- row1Detail ---------------
row2 | col1 | col2 | col3 | col4 | Detail
row3 | col1 | col2 | col3 |col4|詳細
デコレータを使用して、これを行うjavascriptを返してみました。javascriptが実行されますが、レンダリングされた列にのみ反映されます。displaytagのページ付けと並べ替えに影響を与えないデータを含む新しい行を挿入しようとしています。
例えば:
public class CustomDecorator extends TableDecorator {
public String getDetailsRow() {
MyObject object = (MyObject)this.getCurrentRowObject();
return "<a onClick=\"myjsfunction(object.getId()); return true\">Details</a>";
}
}
...そしてJSPでは、display:tableタグの間にdetailsRowプロパティをネストします。
<display:column property="detailsRow" sortable="false" />
新しい行を正しく挿入するためのヒントはありますか?解決策は、javascriptの記述方法にある可能性があります。私はJavascriptの専門家ではないため、ヒントをいただければ幸いです。displaytagでこれを行うためのより良い方法はありますか?displaytagとjavascript(「onclick」パラメーターなど)との明示的な統合についても知りません。
これはstackoverflowに関する私の最初の質問ですが、詳細が必要かどうかをお知らせください。