2017-10-06 104 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