Ben*_*min 5 r datatables shiny
我想DT::datatable在闪亮的应用程序中放置默认过滤器.我能够获得默认过滤器,但删除过滤器的行为并不像我预期的那样.
没有过滤器的数据表示例:
library(shiny)
library(DT)
shinyApp(
ui =
fluidPage(
DT::dataTableOutput("mtcars")
),
server =
shinyServer(function(input, output, session){
output$mtcars <-
DT::renderDataTable({
mtcars$gear <- factor(as.character(mtcars$gear))
datatable(
data = mtcars,
filter = "top",
options =
list(
pageLength = 50
)
)
})
})
)
Run Code Online (Sandbox Code Playgroud)
请注意,在此示例中,当您在gear列下手动选择"3"时,会出现一个灰色的小框,让您知道"3"被选中.
然后,当您没有选择过滤器时,圆圈中有一个小x可以让您清除过滤器.
在这个例子中,当数据表加载时,我已经将"3"预加载到过滤器中.
shinyApp(
ui =
fluidPage(
DT::dataTableOutput("mtcars")
),
server =
shinyServer(function(input, output, session){
output$mtcars <-
DT::renderDataTable({
mtcars$gear <- factor(as.character(mtcars$gear))
datatable(
data = mtcars,
filter = "top",
options =
list(
pageLength = 50,
searchCols = list(NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
NULL, NULL, list(search = '["3"]'), NULL)
)
)
})
})
)
Run Code Online (Sandbox Code Playgroud)
请注意,过滤器框中没有圆圈中的x来清除过滤器.如果我在框中单击并单击而不进行更改,则会出现圆圈,但单击时不会执行任何操作.清除过滤器的唯一方法是选择一个值,然后清除值,如果我没有预加载过滤器那样.
其他人之前有过这个问题吗?
编辑:希望这个非常俗气的图像有助于澄清两者之间的差异.我正在使用DT版本0.1.57(最近在GitHub上)