在闪亮的应用程序中选中/取消选中列后,数据表中已编辑的单元格返回其原始值

时间:2019-10-02 03:44:41

标签: r shiny dt

这是对此post

的扩展

在编辑可编辑数据表中的任何单元格之后,我选中/取消选中某些列,该单元格返回其原始值。

我不知道为什么会这样。有谁知道我该如何解决? 提前非常感谢您!

library(shiny)
library(DT)
library(dplyr)


    # UI
    ui = fluidPage(DT::dataTableOutput('tbl'),
                   checkboxGroupInput('datacols', 
                                      label='Select Columns:',
                                      choices= c('Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width', 'Specie'),
                                      selected = c('Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width', 'Specie'),
                                      inline=TRUE )

    )

    # SERVER
    server = function(input, output) {



        df = reactiveValues()

        observe ({

            df$dat = iris %>% select(one_of(input$datacols))
        })
        # render DT
        output$tbl = renderDT(server=FALSE, {
            datatable(df$dat,
                      editable = "cell",
                      extensions = "Buttons",
                      options = list(
                          dom = "Bfrtip", buttons = list("csv")))

        })


        observeEvent(input[["tbl_cell_edit"]], {
            cellinfo <- input[["tbl_cell_edit"]]
            df$dat  <- editData(df$dat,  input[["tbl_cell_edit"]])
        })

    }
shinyApp(ui=ui, server = server)

1 个答案:

答案 0 :(得分:1)

渲染数据表时,我们需要选择列。

{/machines/1/home, /machines/2/home}