【发布时间】:2017-05-05 21:38:23
【问题描述】:
我的闪亮服务器上有一个数据表,它在 server.R 中定义如下:
output$datamining_table <- DT::renderDataTable(datatable(values$datamining_list,selection="single",
option=list(lengthMenu = list(c(5, 10,20, -1), c('5', '10','20', 'All')),
pageLength = 10,scrollX=T),filter = "top",rownames = F))
我的 ui.R 中还有一个带有按钮的 selectizeInput。当我选择我的 selectizeInput 的特定值并单击按钮时,我希望根据我的 selectizeInput 的值过滤下面的数据表。
例如:
数据表:
- 名称1值A
- 名称2值B
- 名称1值C
- 名称3值D
如果在 selectizeInput 中我选择 Name1,然后单击我的按钮,我希望我的数据表看起来像:
- 名称1值A
- 名称1值C
将第一列的过滤条件设置为 Name1,以便我可以取消过滤。 有人知道如何实现这一目标吗?
非常感谢您的帮助!
编辑: 这是一个可重现的代码:
library(shiny)
library(DT)
runApp(list(
ui=
div(selectizeInput("selectInput","filter",c("a","b","c"),options=list(maxItems=1,create = F,onInitialize = I('function() { this.setValue(""); }'))),
dataTableOutput("datamining_table")
),
server=function(input, output, session) {
values <- reactiveValues()
values$datamining_list <- data.frame(name =c("a","b","c"),
value = c(1,2,3))
output$datamining_table <- DT::renderDataTable(datatable(values$datamining_list,selection="single",
option=list(lengthMenu = list(c(5, 10,20, -1), c('5', '10','20', 'All')),
pageLength = 10,scrollX=T),filter = "top",rownames = F))
}))
【问题讨论】: