首页 > 解决方案 > 特定列数据表中的占位符/单元格标签闪亮 r

问题描述

我正在尝试在闪亮的 R 中获取可编辑数据表中特定列的占位符或单元格名称。这将确保用户知道可以编辑特定列。

我提供了一些代码示例。而不是列数显示值 0,我希望占位符/单元格标签显示为"双击此处输入值"。我不想存储 iris$count <- “双击输入”


ui <- fluidPage(
  DT::dataTableOutput("table"),
)

server <- shinyServer (
  function (input, output, session) {
    
    observeEvent(input$table3_cell_edit,{
      info = input$table3_cell_edit
      str(info)
      i = info$row
      j = info$col
      v = info$value
      vals$df_input <<- editData(vals$df_input, info)
      
    })
    
    output$table <- DT::renderDataTable (iris, 
                                         editable = list(target = 'cell', disable = list( columns = c(1,2,3,4,5)) ))
  
    }
)

shinyApp(ui = ui, server = server)

这是当前代码产生的

在此处输入图像描述

我想要这样的东西 在此处输入图像描述

先感谢您。

标签: rshiny

解决方案


library(shiny)
library(DT)

CSS <- "
table td.withPlaceholder:empty:before {
  content: 'Double click here to input value';
  color: gray;
}
"

iris$count <- ""
ui <- fluidPage(
  tags$head(
    tags$style(HTML(CSS))
  ),
  DT::dataTableOutput("table"),
)

server <- shinyServer (
  function (input, output, session) {
    
    observeEvent(input$table3_cell_edit,{
      info = input$table3_cell_edit
      str(info)
      i = info$row
      j = info$col
      v = info$value
      vals$df_input <<- editData(vals$df_input, info)
      
    })
    
    output$table <- DT::renderDataTable (iris, 
                                         editable = list(target = 'cell', disable = list( columns = c(1,2,3,4,5)) ),
                                         options = list( columnDefs = list(list(targets = 6, className = "withPlaceholder")))
                                         )
    
  }
)

shinyApp(ui = ui, server = server)

推荐阅读