2017-10-06 70 views
1

我正在使用Shiny Dashboard中的DT包构建表格。该表有几列,我使用DT的ColVis功能,允许用户隐藏/只显示他们感兴趣的列。如何更改DT/Shiny中ColumnVisibility按钮的颜色

我的问题是 - 是否可以更改这些按钮的颜色一旦列可见性按钮被点击了吗?到目前为止,颜色并没有足够的差异,很难分辨哪些列是可见的,哪些列没有导航到表格。我已经添加了一张显示我的意思的截图。 The Site_ID column is not visible in the table, while the Participant_ID column is.

我在谷歌浏览器中使用了inspect元素来查找对象名称,它看起来是:a.dt-buttons.buttons-columnVisibility,并且位于body.skin-blue,div.dt-button-collection 。

使用这个信息我添加下面一行到我ui.R代码:

标签$头(标签$风格(HTML(”皮肤蓝.DT按钮收集.buttons-columnVisibility。主动一个{背景颜色:#4d4d4d}“)))

但是这似乎没有做任何事情。任何帮助实现这个自定义的CSS/HTML到我的仪表板将不胜感激。

回答

0

根据this answer,它看起来像按钮颜色需要设置为background。我也用!important来覆盖DT按钮样式,虽然这个may not be the best practice

这里有一个小的工作示例:

library(DT) 
library(shiny) 

ui <- basicPage(
    tags$head(
     tags$style(
     HTML(
      ".dt-button.buttons-columnVisibility { 
       background: #FF0000 !important; 
       color: white !important; 
       opacity: 0.5; 
      } 
     .dt-button.buttons-columnVisibility.active { 
       background: black !important; 
       color: white !important; 
       opacity: 1; 
      }" 
      ) 
     ) 
     ), 
    h2("The iris data"), 
    DT::dataTableOutput("mytable") 
) 

server <- function(input, output) { 
    output$mytable = DT::renderDataTable({ 
     datatable(
      iris, rownames = FALSE, 
      extensions = 'Buttons', 
      options = list(dom = 'Bfrtip', buttons = I('colvis')) 
     ) 
    }) 
} 

shinyApp(ui, server) 
+0

这工作完美!谢谢。 – Gasperino11