好的,我的CellTable
有3列2行。我希望表中某些特定单元格(不是所有单元格)中的文本都是粗体。
请看这段代码:
ListDataProvider<List<String>> dataProvider = new ListDataProvider<List<String>>();
dataProvider.addDataDisplay(table);
List<List<String>> list = dataProvider.getList();
List<String> sublist1= Arrays.asList("223","546","698");
List<String> sublist2= Arrays.asList("123","876","898");
List<String> sublist2= Arrays.asList("123","896","438");
IndexedColumn column1=new IndexedColumn(0);
table.addColumn(column1, "Col1");
IndexedColumn column2=new IndexedColumn(1);
table.addColumn(column2, "Col2");
IndexedColumn column3=new IndexedColumn(2);
table.addColumn(column3, "Col3");
我试过,差不多完成了,但是......
假设我想设置与以下行索引和列索引的交集的单元格:(注意:索引从0开始,因此column2得到索引= 1)
Row - Col 0 - 1 0 - 2 1 - 1 1 - 2 2 - 2
显然,我只想设置5个单元格。
所以我喜欢你说:
在css文件中:
.boldRow .boldColumn { font-weight: bold; }
然后在java文件中
column2.setCellStyleNames(getView().getRes().css().boldColumn());
column3.setCellStyleNames(getView().getRes().css().boldColumn());
table.setRowStyles(new RowStyles<List<String>>() {
@Override
public String getStyleNames(List<String> row, int rowIndex) {
if(rowIndex==0 || rowIndex==1 || rowIndex==2){
return getView().getRes().css().boldRow();
}
return null;
}
});
这是结果:
Col1 - Col2 - Col3 223 - 546 - 698 123 - 876 - 898 123 - 896 - 438
显然,我不希望这个单元格(行索引= 2&amp; columm index = 3)加粗。但结果包括它。
那么如何解决呢?
答案 0 :(得分:1)
找到我的帖子How to style specific cells in CellTable depending the value of that cell (GWT)?。
这将解决您的问题。
在AbstractCell
...
FontWeight weight = FontWeight.BOLD;
if (context.getColumn()==0 || (context.getIndex()==1 && context.getColumn()==2)) {
weight = FontWeight.NORMAL;
}
...