2017-05-08 107 views
1

当应用程序呈现数据表时,我需要在浏览器中默认更改Shiny显示的搜索输入。 搜索输入查找数据表中的数据,并显示用户输入过滤的相应信息。 问题在于Shiny实现了默认情况。修改闪亮的数据表搜索

我想要实现像搜索的输入,但不是过滤器我想分页显示,该用户在输入写入页的数据。

有什么想法?

回答

0

有关快速解决方案,请参阅下文。我隐藏了当前的功能并在顶部实现了一个新功能。

library(DT) 
shinyApp(
    ui = fluidPage(
    tags$head(
     # hides the default search functionality 
     tags$style(
     HTML(".dataTables_filter, .dataTables_info { display: none; }") 
    ) 
    ), 
    fluidRow(
     column(10, 
      "" 
    ), 
     column(2,    
      # adding new page filter 
      numericInput("page", "Page", 1, min = 1) 
    ), 
     column(12, 
      dataTableOutput('table') 
    ) 
    ) 
), 
    server = function(input, output) { 

    output$table <- renderDataTable(iris, options = list(pageLength = 5)) 

    # using new page filter 
    observeEvent(input$page, { 
     dataTableProxy("table") %>% selectPage(input$page) 
    }) 
    } 
) 

当然,这将是很好的替换实际的DOM元素。然后,JavaScript将是要走的路。你既可以找到元素和覆盖功能,或将其删除,替换它。一个很好的出发点是在这里:https://datatables.net/examples/basic_init/dom.html。但我认为这可能是所需要的时间方面的矫枉过正。