0

通常の (非 ajax) 要求/応答サイクルを介してレンダリングされたときに、必要に応じて機能する dataTable があります。

テーブルの最初の行に背景色とパディングを適用するスタイルが定義されています。

.myTable tr:first-child td {
  padding-top: 25px;
  background-color: yellow;
}

上で述べたように、パディングと背景色は、典型的なリクエスト/レスポンスを介して読み込まれると完全に表示されます。ただし、このテーブルが AJAX 経由で再レンダリングされる原因となるアクションがいくつかあります。その場合、テーブルは正しく再読み込みされます (データです) が、上記のスタイルは再適用されません。

dataTable コンポーネントを使用する場合、最初の行に CSS クラスを明確に割り当てる方法がないためです。そこで、上記の CSS セレクターを使用して最初の行を取得しました。これまでにこのような問題に対処したことのある人はいますか? ALL の oncomplete で jQuery を試して使用する唯一のオプションはありますか?これは多くの異なる場所である可能性があります...テーブルの再レンダリングをトリガーできるアクションですか?

私の問題は、速度のためにリッチフェイステーブルコンポーネントの使用を避けようとしており、テーブルをスクロール可能にする必要があることです。そのため、ブラウザー固有の CSS ソリューションを使用して、テーブル本体を srcoll し、ヘッダーを静的に保ちます。主なハングアップは、テーブルの最初の行に、テーブル ヘッダーの固定位置より下に押し下げるトップ パディング値が必要なことです。

4

1 に答える 1

2

dataTableのみを再レンダリングしているため、テーブルのデフォルトスタイルが適用されます。

問題を解決する可能性のある、dataTableと一緒にスタイルコードも再レンダリングする必要があります。

以下のコードのようなものを試して、dataTableの代わりにoutputPanelを再レンダリングしてください。

<a4j:outputPanel>
    <h:dataTable>
            //Data
    </h:dataTable>
    <style>
       .myTable tr:first-child td {
          padding-top: 25px;
          background-color: yellow;
        }
    </style>
</a4j:outputPanel>
于 2011-02-01T07:18:51.977 に答える