JSF Datatable RerenderはCSSスタイルを失います
質問
通常の(非アジャックス)リクエスト/応答サイクルを介してレンダリングされた場合に必要に応じて機能するデータテーブルがあります。
背景色とパディングをテーブルの最初の列に適用することを定義したスタイルがあります。
.myTable tr:first-child td {
padding-top: 25px;
background-color: yellow;
}
上で述べたように、典型的なリクエスト/応答を介してロードされると、パディングと背景色が完全に表示されます。ただし、このテーブルをAjaxを介して再レンダリングする可能性のあるアクションがいくつかあります。それが起こると、テーブルは正しくリロードされます(データです)が、上記のスタイルは再適用されません。
データテーブルコンポーネントを使用するときに、最初の行をCSSクラスに具体的に割り当てる方法がないためです。そこで、上記のCSSセレクターを使用して最初の行を取得しました。誰かが以前にこのような問題に対処したことがありますか?すべての概要でjQueryを使用しようとする私の唯一のオプション...これはさまざまな場所である可能性があります...テーブルの再レンダリングをトリガーできるアクションはありますか?
私の問題は、SpeedのためにRichFacesテーブルコンポーネントの使用を避けようとしていることであり、テーブルをスクロール可能にする必要があることです。そのため、ブラウザ固有のCSSソリューションを使用して、テーブル本体をsrcollし、ヘッダーを静的に保ちます。主なハングアップは、テーブルの最初の列が、テーブルヘッダーの固定位置の下に押し下げられるトップのパディング値を持つ必要があることです。
解決
Datatableのみを繰り返しているため、テーブルのデフォルトスタイルが適用されます。
あなたの問題を解決するかもしれないデータテーブルと一緒にスタイルコードもレンダリングする必要があります。
以下のコードのようなものを試して、データテーブルの代わりにoutputpanelをrederendします。
<a4j:outputPanel>
<h:dataTable>
//Data
</h:dataTable>
<style>
.myTable tr:first-child td {
padding-top: 25px;
background-color: yellow;
}
</style>
</a4j:outputPanel>