2017-05-08 94 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。但我認爲這可能是所需要的時間方面的矯枉過正。