【发布时间】:2021-12-14 20:08:21
【问题描述】:
我正在开发一个闪亮的应用程序,它从 SQL 数据库读取数据并将其呈现在 rhandsontable 中,并允许用户编辑数据。在将更改提交回数据库之前,我想添加一些功能:
- 如果 rhandsontable 中有一个单元格,我如何突出显示该行 行已编辑?
- 有没有办法收集表格上的所有更改/编辑,
因为
input$myTable$changes$changes只显示最后一个 变化!
这是我的最小示例代码:
df <- structure(list(NumberOfWEC = c(3, 4, 54, 19, 10, 6, 8, 11, 140,
11, 34), Source = c("SRP", "SRP", "SRP", "SRP", "SRP", "RBP",
"SRP", "SRP", "SRP", "SRP", "SRP"), Status = structure(c(3L,
3L, 2L, 3L, 2L, 1L, 2L, 1L, 2L, 2L, 2L), .Label = c("CANDIDATE",
"APPROVED", "EXISTING"), class = c("ordered", "factor"))), row.names = c(NA,
11L), class = "data.frame")
ui <- fluidPage(
rHandsontableOutput("myTable")
)
server <- function(input, output, session) {
ColNames <- (colnames(df))
ColNames <- ColNames[!ColNames %in% "Status"]
output$myTable <- renderRHandsontable({rhandsontable(df) %>% hot_col(ColNames, readOnly = TRUE)})
observeEvent(input$myTable$changes$changes, {
changedRow = 1 + as.numeric(input$myTable$changes$changes[[1]][[1]])
changedColl = 1 + as.numeric(input$myTable$changes$changes[[1]][[2]])
OldValue = input$myTable$changes$changes[[1]][[3]]
NewValue = input$myTable$changes$changes[[1]][[4]]
print(paste0("changedRow = ",changedRow, " changedColl = ", changedColl, " OldValue = ", OldValue, " NewValue = ", NewValue, " by = ",session$user))
})
}
shinyApp(ui, server)
【问题讨论】:
标签: javascript r shiny handsontable rhandsontable