smartGWT listGrid で特定の行を色付けすることは可能ですか? すべてのlistGridではなく、1行だけに色を付けたい
5994 次
2 に答える
9
SmartGWT では、Style で終わるメソッド (get Style、getBaseStyle、getCellStyle など) は、別の場所で定義された CSS クラス (.css ファイル、アプリケーション ロード jsp のインライン css など) を返す必要があります。
set Style メソッド
にも同じことが当てはまります。
そのような必要性を保証する多くの CSS カスタマイズが行われていない限り、おそらくgetCellCSSTextを使用するのが最良の選択肢でしょう。
getCellCSSText は、セルごとに CSS テキストを返し、再描画のたびに呼び出されます。
final ListGrid resultsGrid = new ListGrid() {
@Override
protected String getCellCSSText(ListGridRecord record, int rowNum, int colNum) {
String style = super.getCellCSSText(record, rowNum, colNum);
// conditions can check values in record using rowNum, colNum as well as record attributes
if (record.getAttribute("<grid-field-name>").equals(<value>)) {
if (this.getFieldName(colNum).equals("<certain-grid-field-name>") && record.getAttribute("<grid-field-name>").equals(<specific-value>)) {
style = "font-weight:bold"; // only that cell in that row becomes bold
} else {
style = "color:red"; // all other cells in that row become red
}
} else if (record.getAttribute("<other-grid-field-name>").equals(<value>)) {
style = "color:green"; // entire row changed to green if one column in this row contain a specific value
}
return style;
}
};
他の理由がない限り、上記のショーケース サンプルに示されているように ListGridRecord を拡張する必要はありません。
于 2013-04-29T16:11:32.320 に答える
3
SmartGWT を使用したことはありませんが、JavaDoc を見ると、次のように言えます。
の をオーバーライドするこのサンプルもチェックしgetBaseStyle()
てListGrid
ください。
于 2013-04-29T12:25:55.820 に答える