2016-05-16 6 views
3

Я новичок в использовании DT библиотеку в R и функцию datatable() и хотел бы получить некоторую помощь в том, чтобы внести изменения в том, как она выглядит ...DT DataTable цвет фона черный, но до сих пор при наведении курсора и выбора цвета

У меня в настоящее время есть черный фон для данных и хотелось бы, чтобы он менял цвет на зависании над ним или когда выбраны определенные строки ... но выбор фона, кажется, устраняет варианты наведения ... любая помощь будет много оценили.

Пожалуйста, см. Ниже, чтобы узнать, как далеко я получил, пытаясь сделать стол с черным фоном.

DT:::datatable(
    head(iris, 20),rownames = FALSE,options = list(dom='t', 
    initComplete = JS(
     "function(settings, json) {", 
     "$(this.api().table().header()).css({'background-color': '#000', 'color': '#fff'});", 
     "}") 
), 
    container = tags$table(
    class="stripe row-border hover", 
    tags$thead(tags$tr(lapply(colnames(iris), tags$th))) 
) 
) %>% formatStyle(columns=colnames(iris),color='white',background = 'black') 

ответ

1

Я использую

shiny_0.13.2 
DT_0.1.55 

1) Вы должны target="row" в formatStyle

2) Если вы используете его в shiny вы можете просто добавить важный парить CSS:

library(DT) 
library(shiny) 

ui=shinyUI(
    fluidPage(
    tags$head(tags$style(HTML("table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover { 
           background-color: #9c4242 !important; 
           } "))), 
    DT::dataTableOutput("tt") 
    ) 
) 

server=shinyServer(function(input, output) { 
    output$tt=DT::renderDataTable(
    DT:::datatable(
     head(iris, 20),rownames = FALSE,options = list(dom='t', 
                initComplete = JS(
                 "function(settings, json) {", 
                 "$(this.api().table().header()).css({'background-color': '#000', 'color': '#fff'});", 
                 "}") 
    ), 
     container = tags$table(
     class="stripe row-border hover", 
     tags$thead(tags$tr(lapply(colnames(iris), tags$th))) 
    ) 
    ) %>% formatStyle(columns=colnames(iris),color='white',background = 'black',target = 'row') 
) 
}) 


shinyApp(ui=ui,server=server) 

примечание, эта работа только в блестящей

Update не блестит версия

попытка добавить важный в обратный вызов

library(DT) 
library(shiny) # needed for tags 
    DT:::datatable(
     head(iris, 20),rownames = FALSE,options = list(dom='t', 
                initComplete = JS(
                 "function(settings, json) {", 
                 "$(this.api().table().header()).css({'background-color': '#000', 'color': '#fff'});", 
                 "var css = document.createElement('style'); 
                 css.type = 'text/css'; 
                 css.innerHTML = '.table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover { background-color: #9c4242 !important }'; 
                 document.body.appendChild(css);", 
                 "}") 
    ), 
     container = tags$table(
     class="stripe row-border hover", 
     tags$thead(tags$tr(lapply(colnames(iris), tags$th))) 
    ) 
    ) %>% formatStyle(columns=colnames(iris),color='white',background = 'black',target = 'row') 

Update 2 инвертировать цвета

для довольно посмотреть, что вы можете использовать

CSS

table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover { -webkit-filter: invert(100%);filter: invert(100%) } 
+0

Не уверен, что вы закончили писать свой ответ, но ни блестящий код, ни не блестящая версия не работают ... с точки зрения изменения цвета при зависании или изменении при нажатии ... (fyi я запустил ваш блестящий код, используя следующий ... 'runApp (shinyApp (ui = ui, server = server))) –

+0

В блестящем verion пропущено' DT :: '. отредактировано – Batanichek

+0

Не блестящая версия работает только наведите курсор, в вашем приложении ничего не работает (какая версия DT) – Batanichek

 Смежные вопросы

  • Нет связанных вопросов^_^