Стиль отдельной ячейки, используя ng-grid с Angular 6 - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь получить доступ к отдельной ячейке в ag-grid, используя Angular 6. HTML выглядит следующим образом:

 <ag-grid-angular 
 style="width: 700px; height: 200px;" 
 class="ag-theme-balham"
 [rowData]="rowData" 
 [columnDefs]="columnDefs"
 rowSelection="single"
 colDef.editable=true
 (gridReady)="onGridReady($event)"
 >
 </ag-grid-angular>

класс машинописного текста:

 ngOnInit( ) {

  }
  onGridReady(params){
    this.gridApi = params.api
    this.columnApi =  params.columnApi
  }
  updateRow(){
    var rowNode = this.gridApi.getRowNode(0);
    rowNode.setData(
      { make: 'changed', model: 'changed', price: 10 },
    )

  }
  updateCell(){
    var rowNode = this.gridApi.getRowNode(0);
    this.gridApi.getRowNode(0)
    rowNode.setDataValue("model","mobile")
  }
  addColumn(){
    var rowNode = this.gridApi.getRowNode(0);
    var x = parseInt(rowNode.data.price)
    var rowNode = this.gridApi.getRowNode(1);
    var y = parseInt(rowNode.data.price)
    var rowNode = this.gridApi.getRowNode(2);
    var z = parseInt(rowNode.data.price)
   console.log("price", x ,y, z)
   this.total = x+y+z


  }

  columnDefs = [
   // use this for the whole column   {headerName: 'Make', field: 'make',cellStyle: {  'border-bottom': '3px double'} },
   {headerName: 'Make', field: 'make',cellStyle: {
    // you can use either came case or dashes, the grid converts to whats needed
    backgroundColor: '#aaffaa' // light green
}},
    {headerName: 'Model', field: 'model'},
    {headerName: 'Price', field: 'price', editable: true},
    {headerName: '', field: '', editable: true}
];

rowData = [
    { make: 'Toyota', model: 'Celica', price: 35000, cellClass: "col-1" },
    { make: 'Ford', model: 'Mondeo', price: 32000 },
    { make: 'Porsche', model: 'Boxter', price: 72000 }
];

iМожно настроить таргетинг на столбец, используя стиль ячейки, но я хочу добавить только границы для каждой ячейки.Можно ли нацелить ячейку, как я сделал, используя:

var rowNode = this.gridApi.getRowNode(1);

и добавить стиль к rowNode или есть другой способ добиться этого?

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

Согласно документации вы сможете применять стили к отдельной ячейке, передавая параметр, как показано ниже, или вы можете использовать cellClassRules.

  columnDefs = [
   // use this for the whole column   {headerName: 'Make', field: 'make',cellStyle: {  'border-bottom': '3px double'} },
   {headerName: 'Make', field: 'make',cellStyle:function(params) {
    // you can use either came case or dashes, the grid converts to whats needed
//Style the specific cell with one class and the whole column with another
return (params.colDef===1?'my-class-1':'my-class-2');
}},
    {headerName: 'Model', field: 'model'},
    {headerName: 'Price', field: 'price', editable: true},
    {headerName: '', field: '', editable: true}
];
0 голосов
/ 10 октября 2018

Я обнаружил, что если я использую это

{headerName: 'Model', field: 'model',cellClass:function(params) {
  console.log("params ", params);
  console.log("params value", params.value);
  console.log("params colDef", params.node.rowIndex);
  // you can use either came case or dashes, the grid converts to whats needed
//Style the specific cell with one class and the whole column with another
return (params.node.rowIndex===1?'my-class-1':'my-class-2')}},

, и вам нужно поместить CSS в styles.css, так как он не работает в файле CSS компонентов.Я могу нацелиться на отдельную клетку.

0 голосов
/ 10 октября 2018

Если вы просто хотите добавить границу для каждой ячейки, тогда вы можете просто использовать решение CSS для этого -

.ag-cell {
    border: solid 1px blue !important;
}

Если вы хотите добавить границу только для выбранной ячейки, вы можете использовать -

 .ag-cell-focus {
        border: solid 1px blue !important;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...