GXT 3.を使用してツリーグリッドを作成しました。選択した行の背景色を変更できません。また、ルートノード(葉の行、つまり親の行)の背景を変更したいと思います。
GXT3.0とEclipse3.7を使用するiam
前もって感謝します
私も同じ問題を抱えていました。条件に応じて行の背景に色を付けたいと思いました。結局、私は解決策を見つけました:
必要な色を返すには、メソッドを作成しGridViewConfig
てオーバーライドする必要があります。getColumnStyle
見つけるのに時間がかかりましたが、getRowStyle
メソッドをオーバーライドしても、少なくとも私にとってはうまくいきません。
grid.getView().setViewConfig(new GridViewConfig<Model>() {
@Override
public String getColStyle( Model model,
ValueProvider<? super Model, ?> valueProvider,
int rowIndex, int colIndex)
{
if ("Other2".equals(model.getName())){
return "bold";
}else if ("Other".equals(model.getName())){
return "red-row";
}
return null;
}
@Override
public String getRowStyle(Model model, int rowIndex) {
return null;
}
});
注:それに応じてCSSファイルを変更してください。
GXT2.xでも同じだと思います
ColumnConfigに独自のCellRendererを追加するだけです。
List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
ColumnConfig levelColumnConfig = new ColumnConfig("level", "Level", 50);
levelColumnConfig.setRenderer(getGridCellRenderer());
columns.add(levelColumnConfig);
ColumnModel cm = new ColumnModel(columns);
private GridCellRenderer<BeanModel> getGridCellRenderer() {
if (gridCellRenderer == null) {
gridCellRenderer = new GridCellRenderer<BeanModel>() {
@Override
public Object render(BeanModel model, String property, ColumnData config, int rowIndex, int colIndex,
ListStore<BeanModel> store, Grid<BeanModel> grid) {
//add some logic for example
String color = "#000000";
MyBean mybean = (MyBean) model.getBean();
switch (mybean.getLevel()) {
case TRACE:
color = "#f0f0f0";
break;
default:
color = "#000000";
}
// add some background-color
config.style = config.style + ";background-color:" + color + ";";
Object value = model.get(property);
return value;
}
};
}
return gridCellRenderer;
}
次のようにCSSを調整することもできることがわかりました。
grid.getCellFormatter().addStyleName(0, colNo - 1, MC_GWT.MC_STYLE_VERTICAL_ICON_HOLDER);
私が思うに少し簡単です:)特に、その中のアイコンの配置をスタイリングしたい場合。私の場合、アイコンを縦に並べて表示する必要がありました。したがって、セルの表示を「ブロック」に変更する必要がありました。