我正在编辑数据表单元格。当我单击单元格编辑值时,我看不到该值,因为字体颜色为白色,与编辑框的背景相同。这是一个屏幕截图,显示了编辑框单击时的样子:
这是我的脚本:
library(shiny)
library(DT)
# Define the UI
ui <- fluidPage(
DTOutput('table')
)
# Define the server
server <- function(input, output) {
x = reactiveValues(df3 = NULL)
# Create a reactive value to store the edited data frame
edited_data <- reactive({
data.table::data.table(
A = c(1, 2, 3),
B = c(4, 5, 6),
C = c(7, 8, 9)
)
})
# Render the table with editable cells
output$table <- renderDT(edited_data(), editable = "cell", server = TRUE)
proxytab = dataTableProxy('table')
# observe(View(x$df3))
observeEvent(input$table_cell_edit, {
x$df3 <- edited_data()
info = input$table_cell_edit
str(info) # check what info looks like (a data frame of 3 columns)
x$df3 <- editData(x$df3, info)
tabdisplay <- x$df3
replaceData(proxytab, tabdisplay, resetPaging = FALSE)
})
}
# Run the app
shinyApp(ui, server)
当单元格处于编辑模式时,如何更改框中值的字体颜色?
我遇到了类似的情况,并使用以下代码恢复到旧的数据表样式。
/* Update to default DT row and text selected color */
document.documentElement.style.setProperty('--dt-row-selected', '#a6b4cd');
document.documentElement.style.setProperty('--dt-row-selected-text', '#333');
您可以将其放入
.js
脚本中并在 ui 中获取它(推荐),或者像这样直接将其添加到 ui 中。
# sourcing
ui <- fluidPage(
withTags(
header(script(src = 'js/script.js'))
),
DTOutput('table')
)
# inline
ui <- fluidPage(
withTags(
header(
script(HTML(
"document.documentElement.style.setProperty('--dt-row-selected', '#a6b4cd');
document.documentElement.style.setProperty('--dt-row-selected-text', '#333');"
))
)
),
DTOutput('table')
)