getCell (row, col) в HTML-таблице GWT - PullRequest
3 голосов
/ 10 ноября 2011

В HTMLTable такого метода нет:

Cell c =  getCell(row,col);

Каков наиболее эффективный способ получения ячейки в таблице HTML / Flex с учетом строки и столбца?

Ответы [ 3 ]

2 голосов
/ 11 ноября 2011

Зависит от того, что вы хотите сделать.

Если вы хотите читать / записывать содержимое ячейки, вы можете использовать HTMLTable#setText(int,int) и HTMLTable#getText(int,int) или HTMLTable#setWidget(int,int) и HTMLTable#getWidget(int,int), если содержимое ячейки является виджетом.

В HtmlTable.CellFormatter ( ссылка на gwt javadoc ) и его подклассах есть больше функций для чтения / записи свойств ячейки - вы можете получить ее с помощью HTMLTable#getCellFormatter() и, возможно, привести ее в зависимости от реализация HTMLTable вы используете. с помощью средства форматирования ячеек вы можете, например, установить / удалить стили, атрибуты или получить базовый Element ( ссылка на gwt javadoc ) для еще более прямого контроля.

1 голос
/ 10 ноября 2011

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;
}
0 голосов
/ 20 декабря 2011

Ниже приведен код для регистрации события наведения мыши, которое будет отображать значение любой ячейки, которую вы наводите, и отображать ее во всплывающей подсказке.Вы можете изменить слушателя для щелчка и получить тот же материал. Мой код для события:

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