gxt:自定义网格单元格样式

时间:2011-12-02 14:40:38

标签: java grid cell render gxt

我想在网格中创建自定义单元格。这不是问题。 问题:此自定义单元格中的文本具有不正确的样式。

myColumn.setRenderer(new GridCellRenderer<TaskModel>() {
        public Object render(TaskModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<TaskModel> taskModelListStore, Grid<TaskModel> taskModelGrid) {
            VerticalPanel panel = new VerticalPanel();

            Html html = new Html("xxxx");

            Button b = new Button("xxxxxxxx");

            panel.add(html);
            panel.add(b);

            return panel;
        }
    });

为什么会这样?

Style example

3 个答案:

答案 0 :(得分:0)

您必须为自己设置样式。

 Html html = new Html("<div class=\"myStyle\">xxxx</div>");

然后在stylesheet.css文件中(可能根据您的项目设置命名不同)

.myStyle {
    //style you want
}

或内联,如果您不想编辑样式文件,例如:

 Html html = new Html("<div style=\"font-weight: bold;\">xxxx</div>");

但是,我更喜欢将代码存放在代码之外的地方(如我的第一个建议所示)

答案 1 :(得分:0)

如果您希望文本的样式与其他GXT文本的样式相同,请创建一个GXT Text对象并添加该对象。如果你想要一个自定义样式,那么你需要按照@denu的建议使用你自己的CSS。

我觉得像new Text("xxxx");这样的东西可能就是你想要的。

答案 2 :(得分:0)

@Travis 有什么区别:

ColumnConfig column1 = new ColumnConfig("1", 200);
        column1.setRenderer(new GridCellRenderer<TaskModel>() {
            public Object render(TaskModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<TaskModel> taskModelListStore, Grid<TaskModel> taskModelGrid) {
                VerticalPanel panel1 = new VerticalPanel();

                panel1.add(new Html("html"));
                panel1.add(new Label("label"));
                panel1.add(new Text("text"));
                panel1.add(new Button("button"));
                return panel1;
            }
        });
        ColumnConfig column2 = new ColumnConfig("2", 200);
        column2.setRenderer(new GridCellRenderer<TaskModel>() {
            public Object render(TaskModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<TaskModel> taskModelListStore, Grid<TaskModel> taskModelGrid) {
                return new Text("text");
            }
        });