How to embed a datatable that is too long in a tabset window in flexdashboard.

I want to embed a datatable using DT::datatable() in one tab and a graph on another table.
This looks great when we only see ~10 rows but when selecting more sometimes the table runs off the screen.

Below is a reproducible example. In this case select 50 or 100 rows and you'll see the UI runs off the screen unless you happen to be running this on a super long computer.

I'd like to extend the behavior of the scroll-able main page when not in a tabset to this to not have to worry about how long the resulting table with the data would be.

I see a few additional options.

  1. Only allow the user to see 10 or so rows at a time and hope this error doesn't happen when the app is live.
  2. Instead of using tabset use the main page since the vertical_layout: scroll options works well when not embedded in a tabset.

---
title: "Too Long Table Example"
output:
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: scroll
runtime: shiny
---




Inputs {.sidebar}
-------------------------------------

 ```{r}
 # UI HERE
 ``

<!-- < This one works fine --> 
<!-- Row { data-height=1200} -->
<!-- ----------------------------------------------------------------------- -->

<!-- This one restricts the tabset size and the UI element  -->
<!-- falls off the page at showing 50+ rows numbers. -->
Row {.tabset data-height=1200}
-----------------------------------------------------------------------


###  Table
A Table used to make selections and data edits, not implemented in this example. 

```{r}
library(ggplot2)
library(DT)
library(flexdashboard)
library(shiny)
df <- head(diamonds, 200)
fillPage(
DT::datatable(df )
)

``


###  Graph

Some Graphic using DT on another Tab. 
Not important to this example. 

```{r}
plot(df$carat, df$cut)

``

I think there are some issues with DT and flexdashboard. You may open an issue in the Github repo.

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.