3

GXT 3.を使用してツリーグリッドを作成しました。選択した行の背景色を変更できません。また、ルートノード(葉の行、つまり親の行)の背景を変更したいと思います。

GXT3.0とEclipse3.7を使用するiam

前もって感謝します

4

3 に答える 3

6

私も同じ問題を抱えていました。条件に応じて行の背景に色を付けたいと思いました。結局、私は解決策を見つけました:

必要な色を返すには、メソッドを作成し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ファイルを変更してください。

于 2012-06-28T07:24:13.360 に答える
0

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;
    }
于 2012-06-26T15:32:39.517 に答える
0

次のようにCSSを調整することもできることがわかりました。

grid.getCellFormatter().addStyleName(0, colNo - 1, MC_GWT.MC_STYLE_VERTICAL_ICON_HOLDER);

私が思うに少し簡単です:)特に、その中のアイコンの配置をスタイリングしたい場合。私の場合、アイコンを縦に並べて表示する必要がありました。したがって、セルの表示を「ブロック」に変更する必要がありました。

于 2017-10-24T08:02:30.953 に答える