私は同じ問題を抱えていたので、行を選択するルックアンドフィールをエミュレートすることで回避しました。
columnDefs
オブジェクトで、属性を EVERY 列定義に追加しますcellClassRules
(すべてのセルが強調表示され、クリックすると行自体が強調表示されているように見えます)。
var columnDefs = [
{ headerName: "#1", cellClassRules: { rowSelected: CustomRowStyle }, field: "Col1" },
{ headerName: "#2", cellClassRules: { rowSelected: CustomRowStyle }, field: "Col2" },
{ headerName: "#3", cellClassRules: { rowSelected: CustomRowStyle }, field: "Col3" }
]
次に、オブジェクトにイベント リスナーを追加onCellClicked
します。gridOptions
onCellClicked: function(cell) {
SelectedRowIndex = cell.rowIndex;
$scope.gridOptions.api.refreshView();
}
コントローラーで、次の変数を定義しますSelectedRowIndex
。
var SelectedRowIndex; // this will contain the currently selected row number
次に、セルを画面上にレンダリングしようとするたびにCustomRowStyle
呼び出される関数を作成します。この関数は、セルが(ユーザーが最後にクリックした行に基づいて)ag-grid
と同じ行にあるかどうかをチェックして、セルがクラスと共に表示されるかどうかを判断します。SelectedRowIndex
rowSelected
function CustomRowStyle(params) {
return params.rowIndex === SelectedRowIndex
}
最後に、rowSelected
選択した行 CSS でクラスを定義します。
.rowSelected {
background-color: silver !important;
}
どの行をクリックしても (それがグループ アイテムであるか子アイテムであるかに関係なく)、rowSelected
CSS と共に表示されます。コントローラーは、SelectedRowIndex
変数をチェックすることで、現在どの行が選択されているかを常に知ることができます。