Заполните контейнер DataTable на панели вкладок Shiny с помощью Flexdashboard

Я пишу flexdashboard, который показывает фреймы данных с DataTable (DT) во вкладках.

При использовании fillContainer=T на DT и обычных вкладках flexdashboard я получаю желаемый результат: мои таблицы данных заполняют весь свой контейнер, но не более того.

Shinyapps.io: вкладки Flexdashboard с fillContainer = T DT

Flexdashboard Tabs with DT::FillContainer
======================

Column {.tabset .tabset-fade}
-----------------------------------------------------------------------

### iris 

```{r}
DT::datatable(
    iris,
    fillContainer = T,
    rownames = F)
```

### mtcars 

```{r}
DT::datatable(
    mtcars,
    fillContainer = T,
    rownames = F)
```

Теперь я пытаюсь использовать вкладки, динамически сгенерированные с помощью shiny с tabsetPanel, вместо вкладок flexdashboard. Пробовал как с fillContainer=T, так и без него. Но таблицы данных не заполняют контейнер точно и либо слишком длинные по высоте, либо очень короткие (менее 2 строк). В обоих случаях параметры разбивки на страницы отображаются под последней строкой, а не внизу контейнера.

Shinyapps.io: блестящие вкладки с fillContainer = T DT

Shiny Tabs with DT::fillContainer 
======================

Column {.tabset .tabset-fade}
-----------------------------------------------------------------------

### Tabs container with fillContainer

```{r}
library(shiny)
tabsetPanel(
  tabPanel("iris",
    DT::datatable(
      iris,
      fillContainer = T,
      rownames = F)),
  tabPanel("mtcars",
    DT::datatable(
      mtcars,
      fillContainer = T,
      rownames = F))  
)
```

Shinyapps.io: блестящие вкладки без fillContainer = T DT

Shiny Tabs without DT::fillContainer 
======================

Column {.tabset .tabset-fade}
-----------------------------------------------------------------------

### Tabs container without fillContainer

```{r}
library(shiny)
tabsetPanel(
  tabPanel("iris",
    DT::datatable(
      iris,
      fillContainer = F,
      rownames = F)),
  tabPanel("mtcars",
    DT::datatable(
      mtcars,
      fillContainer = F,
      rownames = F))  
)
```

Есть идеи, как правильно наполнить контейнеры? Большое спасибо


person xav    schedule 17.05.2017    source источник
comment
моя беда, я думал, дело в ширине (выравнивание справа);)   -  person Tonio Liebrand    schedule 17.05.2017


Ответы (1)


Установить fillContainer = FALSE

Добавьте style = "height:550px; overflow-y: scroll;" в качестве аргумента tabPanel.

Я успешно использовал это в shinydashboard, где tabPanels являются частью аргумента tabBox.

person Ljupcho Naumov    schedule 17.11.2019