GWT HTMLTable中的getCell(row,col)

时间:2011-11-10 16:38:16

标签: gwt html-table flextable

HTMLTable中没有这样的方法:

Cell c =  getCell(row,col);

在给定行和列的情况下,在HTML / Flex表中获取单元格的最有效方法是什么?

3 个答案:

答案 0 :(得分:2)

取决于你想做什么。

如果您想要读取/写入单元格的内容,您可能需要使用HTMLTable#setText(int,int)HTMLTable#getText(int,int),或HTMLTable#setWidget(int,int)HTMLTable#getWidget(int,int),如果单元格是一个小部件。

HtmlTable.CellFormatterlink to gwt javadoc)及其子类中,有更多函数可以读取/写入单元格的属性 - 您可以使用HTMLTable#getCellFormatter()获取它,也可以将其强制转换,具体取决于您正在使用的HTMLTable的实施。例如,使用单元格格式器,您可以设置/删除样式,属性或获取基础Elementlink to gwt javadoc)以进行更直接的控制。

答案 1 :(得分:1)

HTMLTable有以下方法:

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

您可以使用以下两者编写实用程序方法:

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

答案 2 :(得分:0)

我在下面的代码中注册了鼠标悬停事件,该事件将影响您悬停的任何单元格的值并在工具提示中显示它。你可以修改监听器的点击并获得相同的东西。我的代码是:

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