【发布时间】:2021-07-01 01:56:18
【问题描述】:
我有带有可编辑 = TRUE 选项的 renderDatatable,我正在寻找的是当用户修改单元格的任何值时,单元格背景颜色应该改变(比如 -“绿色”)。这是必要的,因为最终用户可以在稍后查看时了解他/她对表格所做的更改。
下面是我正在尝试的代码
library(shiny)
library(shinydashboard)
library(tidyverse)
library(DT)
library(data.table)
header <- dashboardHeader(title = "demo")
sidebar <- dashboardSidebar(
sidebarMenu(id = 'sidebarmenu',
menuItem("admin", tabName = "admin", icon = icon("adjust"))
)
)
body <- dashboardBody(
tabItems(
tabItem(
tabName = 'admin',
fluidRow(
dataTableOutput('userTable')
)
)
)
)
ui <- dashboardPage(title = 'admin function test', header, sidebar, body, skin='blue')
server <- function(input, output, session){
dat <- data.table::data.table(v1 = c(1,2,3), v2 = c(2,3,4), v3=c(4,5,8), v4=c("a","b","c"))
###Tracking Changes###
rvs <- reactiveValues(
data = NA, #dynamic data object,
logical = NA
)
observe({
rvs$data <- dat
})
observeEvent(input$userTable_cell_edit, {
rvs$data <<- editData(rvs$data, input$userTable_cell_edit, rownames = FALSE,resetPaging = TRUE)
## below code is to keep track of cell that is edited
rvs$logical <<- rvs$data == dat
})
output$userTable <- renderDataTable({
#rvs$data[, v3 := v1+v2]
DT::datatable(rvs$data,editable = TRUE,rownames = FALSE) %>% formatStyle(
colnames(rvs$data),
target = "cell",
## here I am trying to change background color of cell which has been
## edited using refrence from TRUE/FALSE of matrix rvs$logical
## but it is not working
backgroundColor = styleEqual( c(1,0), c('green', 'red') )
)
})
}
shinyApp(ui = ui, server = server)
【问题讨论】:
-
请提供一个您已尝试解决问题的可重现示例。
-
FAlonso——我已经用我正在尝试的代码编辑了查询。感谢您的回复。