したがって、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";
}
});
ただし、これがどのように機能するのかわかりません(おそらく、それが機能しない理由です)
- getStyleNames() はどのように呼び出されますか? デバッガーでそれをステップオーバーするだけです。
- setRowStyles メソッド呼び出しは、コード内のどこに配置する必要がありますか?
これが正しく機能するには、呼び出しを削除する必要があると思います
myDataTable.setStyleName("myDataGrid");
- 私の DataGridOverride.css には既存の css クラスもあります (これは、「myDataGrid」が配置されているメインの css ファイルとは異なります)。クラスは「.dataGridSelectedRowCell」で、背景色が設定されていますが (!important を使用)、機能しません。