我希望在下面的代码中获得datatable的重复模式,其中3行是彩色的,然后是3的白色,然后再次着色...有人可以帮助我代码吗?
此外,在我的Shiny应用程序中,有几个表可能需要不同的样式。希望得到一个答案,说明如何将样式绑定到特定的表,以便我可以使用它来为其他表开发其他样式。
require(shiny)
require(DT)
MkDF <- function(nr) { data.frame(value1=1:nr, value2=runif(nr)) }
server <- function(input, output) {
ds <- MkDF(15)
output$tbl = DT::renderDataTable({
DT::datatable(ds, options=list(info=F, searching=F, paging=F),
container= htmltools::tags$table(class="stripe row-border"),
colnames=c("My Value1","My Value2")) %>% formatRound(2,2)
})
}
ui <- shinyUI(
navbarPage("Example",
tabPanel("DT", fluidRow( column(offset=2, width=4, DT::dataTableOutput('tbl') ) ) )
)
)
shinyApp(ui=ui, server=server)
答案 0 :(得分:3)
您可以尝试使用以下rowCallback功能:
DT::datatable(ds,
options=list(info=F, searching=F, paging=F,
rowCallback=JS(
'function(row,data) {
if($(row)["0"]["_DT_RowIndex"] % 6 <3)
$(row).css("background","orange")
}'))) %>% formatRound("value2",2)
基本上,您可以获取DT行索引$(row)["0"]["_DT_RowIndex"]
并使用模%
运算符为行着色。