代码之家  ›  专栏  ›  技术社区  ›  Vlad

r shining dt-通过编程输入搜索文本

  •  1
  • Vlad  · 技术社区  · 8 年前

    是否可以通过代码输入搜索框文本?所需行为是:用户将文本输入 textInput('search2', "Search 2") 此文本复制到dt搜索框中,并在dt上执行搜索。

    library(shiny)
    library(DT)
    shinyApp(
      ui = fluidPage(
        textInput('search2', "Search 2"),
        DTOutput('dt')
      ),
      server = function(input, output, session) {
        output$dt = renderDT(iris)
      })
    

    enter image description here

    我不想用另一种方式过滤dt数据(我目前正在做的)——特别是我想使用dt的搜索框功能。

    1 回复  |  直到 8 年前
        1
  •  2
  •   shosaco    8 年前

    您可以创建一个 datatableProxy 它允许操作现有的dt实例。使用函数 updateSearch :

    library(shiny)
    library(DT)    
    
    shinyApp(
      ui = fluidPage(
        textInput('search2', "Search 2"),
        DTOutput('dt')
      ),
      server = function(input, output, session) {
    
        DTproxy <- dataTableProxy("dt")
        output$dt = renderDT(iris)
    
        observeEvent(input$search2, {
          updateSearch(DTproxy, keywords = list(global = input$search2, columns = NULL))
        })
    
      })
    

    enter image description here

    推荐文章