formatStyle для нижнего колонтитула в datatable (r пакет DT) - PullRequest
0 голосов
/ 05 апреля 2020

при поиске создания нижнего колонтитула в datatable (с пакетом r DT) я нашел решение

Я скопировал приведенный ниже код для минимального воспроизводимого примера

library(htmlwidgets)
library(DT)
library(htmltools)

sketch <- htmltools::withTags(table(
  tableHeader(colnames(mtcars)), 
  tableFooter(c(0,0,0,0,0,0,0,0,0,0,0,0))
))

jsCode <- "function(row, data, start, end, display) {
  var api = this.api(), data;
  total = api.column(7, {page: 'current'}).data().reduce( function(a, b) { return a + 
b}, 0);
  total2 = api.column(6, {page: 'current'}).data().reduce( function(a, b) { return a 
+ b}, 0);
  total3 = api.column(2, {page: 'current'}).data().reduce( function(a, b) { return a 
+ b}, 0);
  $( api.column(7).footer() ).html('Total: ' + total.toFixed(2));
  $( api.column(6).footer() ).html('Total: ' + total2.toFixed(2));
  $( api.column(2).footer() ).html('Total: ' + total3.toFixed(2))
  }"

DT::datatable(mtcars, container = sketch, options=list(scrollY=300, scrollX=TRUE, scroller=TRUE, footerCallback = JS(jsCode)))

Теперь я хотел бы добавить некоторые стили форматирования с помощью formatStyle или formatCurrency, но они не применяются к нижнему колонтитулу.

Поэтому мой вопрос: как применить formatStyle или formatCurrency к нижний колонтитул в данных.


DT::datatable(mtcars, container = sketch, options=list(scrollY=300, scrollX=TRUE, scroller=TRUE, footerCallback = JS(jsCode)))%>%
  formatCurrency(c("cyl"),
                 currency = " €", interval = 3, mark = " ", 
                 digits = 0, dec.mark = getOption("OutDec"), before = FALSE)%>% 
  formatStyle(c("cyl"),
    backgroundColor = styleInterval(c(10), c('#b4c5db',"#b4c5db")))

...