1

したがって、Datagrid の個々の行の css を設定する方法に少し混乱しています (これは、cellTable が使用できるすべてのものを使用できることを理解しています)。

最初に、「onCellPreview」で正しく呼び出されるダブルクリックとシングルクリックのハンドラーがあります (これを機能させるには、selectionModel を削除する必要がありました)。その後、event.getIndex() を介して行番号を取得できます。

次は、選択した行、私のコードの CSS を設定しようとして失敗した場所です。

int Row= event.getIndex();

myDataTable.setRowStyles(new RowStyles<String[]>(){
   @Override
   public String getStyleNames(String [] rowObject, int theRow){
      if (row== theRow){
          return "myDataGridSelectedRow";
      }
      else 
          return "myDataGrid";
   }
});

ただし、これがどのように機能するのかわかりません(おそらく、それが機能しない理由です)

  1. getStyleNames() はどのように呼び出されますか? デバッガーでそれをステップオーバーするだけです。
  2. setRowStyles メソッド呼び出しは、コード内のどこに配置する必要がありますか?
  3. これが正しく機能するには、呼び出しを削除する必要があると思います

     myDataTable.setStyleName("myDataGrid");
    
  4. 私の DataGridOverride.css には既存の css クラスもあります (これは、「myDataGrid」が配置されているメインの css ファイルとは異なります)。クラスは「.dataGridSelectedRowCell」で、背景色が設定されていますが (!important を使用)、機能しません。
4

1 に答える 1

2

このメソッドsetRowStyles()は、テーブルがレンダリングされるときにのみ呼び出されます。

この方法でスタイルを動的に設定できます。

myDataTable.getRowElement(i).getStyle()...

また

myDataTable.getRowElement(i).setClassName("myDataGridSelectedRow");

グリッドからスタイル名を削除する必要はありません。

編集:

別の方法は、標準の DataGrid CSS リソースをオーバーライドすることです。

gwt 2.1 CellTables ヘッダーのスタイルを設定するにはどうすればよいですか?

デフォルトの GWT DataGrid スタイルに多くの変更を加えたい場合は、この方法をお勧めします。

于 2014-03-20T19:23:58.703 に答える