2011-12-02 72 views
1

我想在网格中创建自定义单元格。这不是问题。 问题:此自定义单元格中的文本有不正确的样式。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

回答

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>"); 

不过我更喜欢存储方式,其中取而代之的是,代码外(在我的第一个建议)

0

如果要将文本样式设置为与其他GXT文本相同,请创建一个GXT Text对象,然后添加该对象。如果您想要自定义样式,那么您需要使用@denu建议的自己的CSS。

我认为像new Text("xxxx");可能是你想要的东西。

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"); 
      } 
     });