修改闪亮的数据表搜索
Modify shiny datatable search
我需要更改 Shiny 在应用呈现数据表时默认显示在浏览器中的搜索输入。
搜索输入查找数据表中的数据,并根据用户的输入过滤显示相应的信息。
问题是 Shiny 默认实现了它。
我想实现类似搜索的输入,但我希望分页显示用户在输入中写入的页面,而不是过滤数据。
有什么想法吗?
有关快速解决方案,请参见下文。我隐藏了当前的功能并在上面实现了一个新的功能。
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。但我认为就所需时间而言,这可能有点矫枉过正。
我需要更改 Shiny 在应用呈现数据表时默认显示在浏览器中的搜索输入。 搜索输入查找数据表中的数据,并根据用户的输入过滤显示相应的信息。 问题是 Shiny 默认实现了它。
我想实现类似搜索的输入,但我希望分页显示用户在输入中写入的页面,而不是过滤数据。
有什么想法吗?
有关快速解决方案,请参见下文。我隐藏了当前的功能并在上面实现了一个新的功能。
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。但我认为就所需时间而言,这可能有点矫枉过正。