2009/11/22

AjaxFallbackDefaultDataTableのカラム幅指定(2)

やっぱり簡単な方法があった。
public Page(){
List<IColumn<Score>> columns = new ArrayList<IColumn<Score>>();
columns.add(new PropertyColumn<Score>(new Model<String>("打順"), "order"){
public String getCssClass() {
return "orderClass";
}

});
add(new AjaxFallbackDefaultDataTable<Score>(
"scores", columns
, new ScoreDataProvider(), 10
));


こんな感じで、カラムのgetCssClassをオーバーライドして適当な値を返せばthタグのclassとして出力されるので、スタイルシートで

th.orderClass{ width: 20%}

ってやっとけば幅を指定できる。前回のコードからわかるように、Columnは実際にはthやtdの下に位置するんだけど、getCssClassが返す結果はthやtdに反映される。
前回のと同じ結果ではないけど、はるかにシンプルにできるので、わざわざ前回のコンポーネント階層を辿るより全然良い。

0 件のコメント: