3

HTMLTable にはそのようなメソッドはありません:

Cell c =  getCell(row,col);

行と列が与えられた場合、HTML/Flex テーブルでセルを取得する最も効果的な方法は何ですか?

4

3 に答える 3

2

何をしたいかによります。

セルのコンテンツを読み書きしたい場合、セルのコンテンツがウィジェットの場合はHTMLTable#setText(int,int)and HTMLTable#getText(int,int)、またはHTMLTable#setWidget(int,int)andを使用することができます。HTMLTable#getWidget(int,int)

セルのプロパティを読み書きする関数が他にもありますHtmlTable.CellFormatter( gwt javadoc へのリンク) とそのサブクラス - 使用HTMLTable#getCellFormatter()している実装に応じて、それを使用して取得したり、キャストしたりできHTMLTableます。セル フォーマッタを使用すると、たとえば、スタイルや属性を設定/削除したり、基礎となるものElement( gwt javadoc へのリンク) を取得したりして、さらに直接制御することができます。

于 2011-11-11T19:35:03.617 に答える
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;
}
于 2011-11-10T18:30:44.477 に答える
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 }); 
}
于 2011-12-20T05:33:08.747 に答える