我希望在R中的flexdashboard中显示数据。我使用DT::renderDataTable({DT::datatable(data(), options=list(scrollX=TRUE))})
构建数据表
当显示10个条目时,这很好用,但是当我选择显示25个条目的选项时,我无法向下滚动到页面底部并单击第二个页面按钮,下一个按钮等。我不能像我以前一样垂直滚动。我尝试了sScrollY = "300px"
选项,但这并不是让数据表扩展来填充我的flexdashboard上的整个页面。问题是当我尝试在y方向上滚动时,观察行被切断并且无法访问。
我想知道我需要做些什么来使数据表扩展并按预期填充,如https://shiny.rstudio.com/gallery/datatables-options.html
所示从示例中,您可以看到在更改显示的行数时仍可以向上和向下滚动。我不能在新版本的datatable中执行此操作。截至目前,我将显示的行数限制为10 ......但是,这不是长期解决方案。
非常感谢任何想法。谢谢。最好的,NF
答案 0 :(得分:1)
我还没能找到一个我满意的解决方案,但是对于过渡时期,我正在使用sScrollY = '75vh'
争论并构建这样的数据表:
DT::renderDataTable({
DT::datatable(plot_data(), options = list(scrollX = TRUE, sScrollY = '75vh', scrollCollapse = TRUE), extensions = list("Scroller"))
})
至少这样可以看出分页。如果有人有其他想法,我很乐意听到他们。干杯现在。 --Nate
答案 1 :(得分:0)
我遇到了同样的问题,我无法扩展数据表。问题是默认情况下所有数据表都有autoWidth = FALSE
选项,因此您需要将其更改为autoWidth = TRUE
。
尝试这样的事情:
DT::renderDataTable({DT::datatable(data(), options=list(autoWidth = TRUE,scrollX=TRUE))})
之后你应该使用Width操作。
这是一个例子。
library(shiny)
library(shinydashboard)
library(DT)
ui <- dashboardPage(
dashboardHeader(title="Data Table"),
dashboardSidebar(
menuItem(text="Menu",icon=icon("bars"),
menuSubItem(text="Show datatable",tabName="ShowData", icon=icon("search")))
),
dashboardBody(
tabItems(
tabItem(tabName="ShowData",
box(DT::dataTableOutput("Data"),width = 12)))))
server <- shinyServer(function(input, output) {
output$Data<-DT::renderDataTable({DT::datatable(data(),options = list(autoWidth = TRUE,scrollX = TRUE))})
})
shinyApp(ui = ui, server = server)
答案 2 :(得分:0)
您可以使用:option = list(scrollY = 300,scrollCollapse = TRUE)。我在R Notebook中尝试过,它对我有用。
答案 3 :(得分:0)
感谢您举报。正如我在rstudio/DT#818所回答的那样,可以通过在fillContainer = TRUE
上添加选项DT::datatable()
来解决该问题。
我的意思是,像下面这样更改块就足够了。
### renderDataTable (reactive)
```{r}
DT::renderDataTable(datatable(mydataset(), rownames = TRUE,
options = list(bPaginate = FALSE, searching = FALSE, info = FALSE),
fillContainer = TRUE))
```
FlexDashBoard将启用使用静态数据(DT::datatable()
)的原因是fillContainer
。但是,在闪亮模式下,此功能无法执行。