gwt html-table flextable

getCell(fila, col) en GWT HTMLTable



html-table flextable (3)

No hay tal método en HTMLTable:

Cell c = getCell(row,col);

¿Cuál es la forma más efectiva de obtener una celda en una tabla HTML / Flex, dada la fila y la columna?


HTMLTable tiene los siguientes métodos:

  • HTMLTable#isCellPresent(int row, int column)
  • HTMLTable#getWidget(int row, int column)

Puede escribir un método de utilidad usando ambos de esta manera:

public static Cell<?> getCell(HTMLTable table, int row, int column) { if (table != null && table.isCellPresent(row, column)) { Widget widget = table.getWidget(row, column); if (widget instanceof Cell) { return (Cell<?>) widget; } } return null; }


Depende de lo que quieras hacer.

Si desea leer / escribir el contenido de la celda, puede usar HTMLTable#setText(int,int) y HTMLTable#getText(int,int) , o HTMLTable#setWidget(int,int) y HTMLTable#getWidget(int,int) , si el contenido de la celda es un widget.

Hay más funciones para leer / escribir propiedades de la celda en HtmlTable.CellFormatter ( enlace a gwt javadoc ) y sus subclases: puede obtenerlo usando la HTMLTable#getCellFormatter() y quizás HTMLTable#getCellFormatter() , dependiendo de la implementación de HTMLTable que esté usando . con el formateador de celdas puede, por ejemplo, establecer / eliminar estilos, atributos u obtener el Element subyacente ( enlace a gwt javadoc ) para un control aún más directo.


Describo el siguiente código para registrar el evento mouseover que calculará el valor de cualquier celda que desplace y la muestre en la información sobre herramientas. Puede modificar el oyente haciendo clic y obtener las mismas cosas. Mi código para el evento es:

Ext.QuickTips.init(); grid_plancode.on(''mouseover'', mouseOver); function mouseOver(e, tar){ var t = e.getTarget(); var overCell = grid_plancode.getView().findCellIndex(t); var overRow = grid_plancode.getView().findRowIndex(t); var selectedText=grid_plancode.getView().getCell(overRow, overCell); if(overCell !== false && overRow !== false) { Ext.QuickTips.register({target:tar,title:''Value'', text:selectedText. innerText }); }