2015-11-17 3 views
3

Как изменить цвет фона выбранной строки в datatable в блестящем приложении? My ui.R имеет следующий код:Цвет фона DT :: datatable in shiny

library(shinydashboard) 

header <- dashboardHeader(title = 'title') 
sidebar <- dashboardSidebar(
    sidebarMenu(
    menuItem('dashboard', tabName = 'dashboard', icon = icon('dashboard')) 
) 
) 
body <- dashboardBody(
    fluidRow(
    column(width = 6, 
      box(
      title = 'box', width = NULL, status = 'primary', 
      DT::dataTableOutput('table1') 
      ), 
      box(
      title = 'box', width = NULL, status = 'primary', 
      DT::dataTableOutput('table2') 
      ) 
    ), 
    column(width = 6, 
      box(
      title = 'box', width = NULL, status = 'primary', 
      DT::dataTableOutput('table3') 
      ) 
    ) 
) 
) 
dashboardPage(header, sidebar, body) 

ответ

2

Вы можете использовать CSS для этого. Цвет выбранных строк устанавливается table.dataTable tbody tr.selected { background-color: #B0BED9;} в jquery.min.dataTables.css.

Вот минимальный пример, основанный на коде о том, как изменить его с помощью tags$style:

library(shinydashboard) 

header <- dashboardHeader(title = 'title') 
sidebar <- dashboardSidebar(
    sidebarMenu(
    menuItem('dashboard', tabName = 'dashboard', icon = icon('dashboard')) 
) 
) 
body <- dashboardBody(
    tags$head(tags$style(HTML("#table1 tr.selected, #table2 tr.selected {background-color:red}"))), 
    fluidRow(
    column(width = 6, 
      box(
      title = 'box', width = NULL, status = 'primary', 
      DT::dataTableOutput('table1') 
      ), 
      box(
      title = 'box', width = NULL, status = 'primary', 
      DT::dataTableOutput('table2') 
      ) 
    ) 
) 
) 
ui<-dashboardPage(header, sidebar, body) 

server = function(input, output) { 
    output$table1 = DT::renderDataTable(
    iris, options = list(lengthChange = FALSE) 
) 

    output$table2 = DT::renderDataTable(
    iris, options = list(lengthChange = FALSE) 
) 
} 

shinyApp(ui,server) 

Я добавил идентификаторы таблиц (#table1 tr.selected, #table2 tr.selected), так что этот селектор имеет больший вес, чем значение по умолчанию и отменяет его, подробнее об этом here.

+0

Не могли бы вы также обновить свой ответ так, чтобы это применимо к 'shinydashboard'? У меня есть эта таблица внутри 'box' в' колонке' 'fluidRow'. –

+1

Возможно, обновите свой вопрос, чтобы включить код? Не знаете, как выглядит ваше приложение. – NicE

+0

Странно, но это не влияет на запуск вашего примера приложения. –

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