闪亮 - textInput

时间:2016-05-25 07:23:40

标签: r shiny

有没有什么方法可以提供可用的选项,同时使用闪亮的textInput类似于闪亮的selectinput选项?

即,如果用户键入字母或字符,则必须提供字母或字符中的所有可用选项。由于我有很多选项,因此选择输入速度慢,而不是输入的好选项。因此,我选择了textInput。

任何建议都会有所帮助!

由于

3 个答案:

答案 0 :(得分:4)

您可以将selectInput与参数multiple = TRUE

一起使用
selectInput(inputId, label, choices, multiple = TRUE)

这将输出一个文本框而不是下拉列表,当用户开始输入时,将会过滤掉该字母中的所有可用选项。

Create a select list input control

Example

答案 1 :(得分:1)

使用DT,你可以做一些奇特的东西。下面是一个示例,其中表列出了包含您键入的文本的所有选项。如果单击表格单元格,则会使用表格单元格的文本更新文本输入。您也可以使用表格的搜索字段。

library(shiny)

shinyApp(
  ui = fluidPage(textInput("text", "Please input text:"),
                 DT::dataTableOutput('tbl')),

  server = function(session, input, output) {

    # all your choices for the textfield go into "text" column
    allData <- data.frame(ID = '', text = c(paste0("Text",1:50)))

    # table with only the texts that contain input$text
    output$tbl = DT::renderDataTable(
      allData[grep(input$text, allData$text), ],
      selection = 'none',
      rownames = FALSE,
      options = list(searchHighlight=T)
    )

    # fill textInput after Click in Table
    observeEvent(input$tbl_cell_clicked, {
      info <- input$tbl_cell_clicked

      if (is.null(info$value) || info$col != 1) return()
      else {
       updateTextInput(session, "text", value = info$value)
      }
    })
  }
)

enter image description here

答案 2 :(得分:0)

selectinput类型减慢而不是输入的好选项

在这种情况下,具有多项选择的

selectInput是最佳选择。通过将selectInput移动到服务器中,可以轻松管理缓慢加载。

只需输入ui.R

即可
selectizeInput(inputId=..., label=..., choices = NULL, multiple = TRUE)

server.R

server <-  function(input, output, session) {
    updateSelectizeInput(session = session,inputId =...,choices=..., server = TRUE)}

现在加载缓慢不会有任何问题。