2011-12-02 61 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"); 
      } 
     });