繁体   English   中英

添加或删除文本输入行

[英]Add or delete rows of textInput

我正在寻找在 R Shiny 中添加/删除textInput行的方法。 所需的输出类似于下图:

图片来源: https : //www.tutorialrepublic.com/snippets/preview.php?topic=bootstrap&file=table-with-add-and-delete-row-feature

所需的输出不一定是表格。 或者,当用户单击“添加”时,应出现一个包含与前一行相同数量的空白textInput条目的列表(用户不能添加更多列)。 当用户点击“删除”时,相应的行应该被删除。 能够从每个文本框中捕获用户输入非常重要。 有没有办法使用 R Shiny 轻松完成此操作?

这个怎么样:

library(shiny)

ui <- fluidPage(
    sidebarLayout(
        sidebarPanel(
            sliderInput("input_no",
                        "Number of inputs:",
                        min = 1,
                        max = 5,
                        value = 30),
            uiOutput("dateinputs")
        ),

        mainPanel(
           verbatimTextOutput("res")
        )
    )
)

server <- function(input, output) {

    output$dateinputs <- renderUI({
        no <- as.integer(input$input_no) 
        lapply(1:no, function(i) {
            
            textInput(paste0("ind", i),
                      label = paste("Textinput ", i))
        })
    })
    
    report_dates <- reactive({
        no <- as.integer(input$input_no) 
        
        sapply(1:no, function(i) {
            input[[paste0("ind", i)]]
        })
    })
    
    output$res <- renderPrint({
        report_dates()
    })
}

shinyApp(ui = ui, server = server)

另一种选择是使用DT的编辑功能:

看看这个例子: https : //rstudio.github.io/DT/shiny.html (第 2.4 节)。 您可以创建一个 actionButton() 来添加行并在表中编辑它们

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM