Datatable 中 rowcallback 中的边框样式
Border Style in rowcallback in Datatable
我想根据列中的值应用样式。例如,第一列有文本 'A',然后将样式应用于整行。我对 rowcallback 进行了同样的尝试,它可以工作,但它不应用边框。我尝试使用默认数据表边框样式覆盖 border-collapse : collapse
library(shiny)
library(DT)
css <- "
table.dataTable {
border-collapse: collapse !important;
}
.lastRow {
border-top: 1px solid #000 !important;
font-size: 13px;
font-weight: 600;
color: red;
letter-spacing: .5px;
}
"
Clback <- JS(
"function(row, data, index){",
"if (data[0] == 'C') {",
" $(row).addClass('lastRow');",
"}}"
)
shinyApp(
ui = fluidPage(
tags$head(
tags$style(HTML(css))
),
fluidRow(
column(12,
DTOutput('table')
)
)
),
server = function(input, output) {
mydf <- data.frame(x = LETTERS[1:10], y = sample(1:10))
output$table <- renderDT({
datatable(
mydf,
rownames = F,
options = list(
rowCallback = Clback
)
)
}
)
}
)
那是因为边框属性必须应用于 td
元素:
" $(row).find('td').addClass('lastRow');"
我想根据列中的值应用样式。例如,第一列有文本 'A',然后将样式应用于整行。我对 rowcallback 进行了同样的尝试,它可以工作,但它不应用边框。我尝试使用默认数据表边框样式覆盖 border-collapse : collapse
library(shiny)
library(DT)
css <- "
table.dataTable {
border-collapse: collapse !important;
}
.lastRow {
border-top: 1px solid #000 !important;
font-size: 13px;
font-weight: 600;
color: red;
letter-spacing: .5px;
}
"
Clback <- JS(
"function(row, data, index){",
"if (data[0] == 'C') {",
" $(row).addClass('lastRow');",
"}}"
)
shinyApp(
ui = fluidPage(
tags$head(
tags$style(HTML(css))
),
fluidRow(
column(12,
DTOutput('table')
)
)
),
server = function(input, output) {
mydf <- data.frame(x = LETTERS[1:10], y = sample(1:10))
output$table <- renderDT({
datatable(
mydf,
rownames = F,
options = list(
rowCallback = Clback
)
)
}
)
}
)
那是因为边框属性必须应用于 td
元素:
" $(row).find('td').addClass('lastRow');"