我有一个复合单元格,工作正常,它有一个textinputcell和一个按钮单元格。然而,当它显示它将按钮单元放在文本输入单元格下时,就像在图片
中一样以下是使用hascells实现我的compositecel,谢谢!
final HasCell<ObjetoDato,String> celda1=new HasCell<ObjetoDato,String>(){
TextInputCell celda;
@Override
public Cell<String> getCell() {
celda=new TextInputCell();
return celda;
}
@Override
public FieldUpdater<ObjetoDato, String> getFieldUpdater() {
return null;
}
@Override
public String getValue(ObjetoDato object) {
//new Scripter(object,actual.getComportamiento(),true);
return object.getValor(actual.getNombreCampo());
}
};
HasCell<ObjetoDato,String> celda2=new HasCell<ObjetoDato,String>(){
ButtonCell celda;
@Override
public Cell<String> getCell() {
celda=new ButtonCell();
return celda;
}
@Override
public FieldUpdater<ObjetoDato, String> getFieldUpdater() {
return new FieldUpdater<ObjetoDato, String> (){
@Override
public void update(int index,ObjetoDato object, String value) {
new Seleccionador(actual.getClaseRelacion(), actual.getNombreCampo(),object.getValor(actual.getNombreCampo()), object.getIdRelacion(actual.getNombreCampo()), object,tabla,object,actual.getComportamiento());
}
};
}
@Override
public String getValue(ObjetoDato object) {
return "...";
}
};
//Composite
List<HasCell<ObjetoDato,?>> celdas = new LinkedList<HasCell<ObjetoDato,?>>();
celdas.add(celda1);
celdas.add(celda2);
CompositeCell<ObjetoDato> cell = new CompositeCell<ObjetoDato>(celdas);
Column<ObjetoDato,ObjetoDato> columna = new Column<ObjetoDato,ObjetoDato>(cell) {
@Override
public ObjetoDato getValue(ObjetoDato object) {
return object;
}
};
//columna.setCellStyleNames("columna3puntos");
tabla.agregarColumna(columna,actual.getCaption());
答案 0 :(得分:0)
您可能想看一下render()方法。此外,如果您的内部单元格使用<div>
之类的块元素。它将垂直显示。因此,您可以将其更改为<span>
。或者你可以添加style =“float:left;”你的div的CSS。我有类似你的东西。但我的是一个2行表的自定义单元格,其中有一列如下:
+----+
| |
+----+
| |
+----+
我使用CellList来保存许多这些自定义单元格。 CellList的问题是它垂直显示它们。所以我不得不重写CellList以使其水平显示。我将CellList的模板修改为float:left,我的单元格开始水平渲染,如下所示:
+----+ +----+ +----+
| | | | | |
+----+ +----+ +----+
| | | | | |
+----+ +----+ +----+