RichFaces 3.3.3 finalを使用したrich:extendedDataTableのmax-heightに問題があります。
テーブルに最大の高さを設定したいのですが、テーブルがこの高さを満たさない場合(行数は動的に生成されます)、テーブルは縮小します。
テーブルに高さを定義すると、テーブルを埋めるのに十分な要素がないかどうかに関係なく、テーブルは常にそのサイズになります。
高さを動的にするためのCSSがいくつかあります。
.rich-extdt-maindiv {
height: auto !important;
}
.rich-extdt-maindiv, .extdt-innerdiv {
position: relative !important;
}
.extdt-outerdiv {
height: auto !important;
overflow: visible !important;
}
.extdt-content {
height: auto !important;
max-height: 200px;
}
(http://community.jboss.org/wiki/ExtendedDataTableDynamicHeightAndJIRABugRF-7488から取得)
ただし、最大高さ(1ページに複数の異なるサイズのテーブル)を変更できるようにしたい。
また、このcssを使用すると、他のextendedDataTableの他のすべての高さをオーバーライドします。
私が現在していることはこれです:
height="#{bean.listSize > 0 ? bean.listSize * 19 + 32 > 291 ? 291 : bean.listSize * 19 + 32 : 0}"
高さの場合、19は行の高さ、32はヘッダーの高さ、291はテーブルに必要な最大の高さです。
個々の行のサイズが異なる場合に機能するソリューションが必要なため、これは理想的なソリューションではありません。
f:verbatimなどでJavaScript呼び出しを機能させることはできませんでした(RichFaces / JSFページにjavascriptスクリプトを埋め込んで呼び出す方法を参照)が、最大高さを設定するとページ上のすべてのテーブルの最大高さ。
誰かがより良い解決策を持っていますか?
これを理解しようとすればするほど、extendeDataTableは制限されていると思います。これに対する解決策を考えることはできませんが、このプログラムのテーブルのサイズが異なることに気づいています。これは実装するのが常識のように見える機能ですが、これを行う方法はありません。
1つの最終更新:
私は何もうまくいかなかった。私はまだ上記の高さ関数を使用しています。ページごとに理解しやすく、制御しやすいです。「19」ピクセル値は、行を太くするために、行にあるアイテムに基づいて変更する必要がある場合があります。
このソリューションでは、高さが行数に基づいているため、セルをラップしたくありませんでした。これにより、行の最後に小さな「...」が追加されます。
セル内の残りのコンテンツをマウスオーバーで表示するrich:toolTip(またはrichfacesを疑うようになったので自分のツールチップ)を追加しました。最善の解決策ではありませんが、必要なものには機能します。
そしてこれはあなたが必要とするCSSです:
.rich-extdt-maindiv, .extdt-innerdiv {
position: relative !important;
}
.extdt-outerdiv {
overflow: visible !important;
}
元のファイルの他のcssは、高さを制御することでした。彼らは、高さが動的であり、1つのタグで最大高さを制御するという点でそれを覆しました。動的な最大高さが必要ない場合は、これが最適なソリューションです。
別のオプションは、ページごとに1つのテーブルしかない場合、jQueryを使用して.extdt-contentのmax-heightを変更することです。ページごとに複数あるので、私には選択肢がありません。
これが他の誰かに役立つことを願っています。
heightステートメントはクロスブラウザー互換ではありません。