2017-01-23 3 views
3

У меня есть данные я хочу показать в flexdashboard в Р. я построить DataTable с DT::renderDataTable({DT::datatable(data(), options=list(scrollX=TRUE))})не прокручивать в направлении Y.

Это работает просто отлично, когда показывая что-то вроде 10 записей, но когда я выбираю возможность показать 25 записей, я не могу прокрутить вниз до нижней части страницы и нажать кнопку второй страницы, следующую кнопку и т. д. Я не могу прокручивать вертикально, как раньше. Я пробовал параметры sScrollY = "300px", но это не позволяет расширять таблицу данных, чтобы заполнить всю страницу на моей гибкой панели. Проблема заключается в том, что строки наблюдений отсекаются и недоступны, когда я пытаюсь прокручивать в направлении y.

Мне интересно, что мне нужно сделать, чтобы DataTables расширить и заполнить, как ожидается, как показано на https://shiny.rstudio.com/gallery/datatables-options.html

Из примера, вы можете увидеть, как она по-прежнему можно прокручивать вверх и вниз, когда вы меняете количество строк показано. Я не могу сделать это в новой версии данных. На данный момент я ограничиваю количество строк, отображаемых на 10 ... однако это не долгосрочное решение.

Любые идеи приветствуются. Спасибо. Лучший, NF

+0

Посмотрите на 'Scroller'extension – HubertL

ответ

0

У меня была та же проблема, я не мог расширять данные. Проблема заключалась в том, что по умолчанию все данные имеют опцию autoWidth = FALSE, поэтому вам необходимо изменить ее на autoWidth = TRUE.

попробовать что-то вроде этого:

DT::renderDataTable({DT::datatable(data(), options=list(autoWidth = TRUE,scrollX=TRUE))}) 

После этого вы должны оштрафовать с шириной манипуляции.

Вот пример.

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) 
+0

Спасибо, что ответили, но проблема не в том, чтобы работать в x-направлении ... это проблема 100% с направлением y. Как только я попытаюсь выбрать «показать 25 строк», я могу видеть только первые 18 и не могу прокручивать DOWN на странице панели инструментов. 1. увидеть оставшиеся наблюдения. 2. увидеть значок следующей страницы. 3. увидеть предыдущий/следующий значок. , – nate

1

Я не был в состоянии найти решение, которое я доволен пока, но промежуточный, я использую sScrollY = '75vh' arguement и создание DataTable вроде этого:

DT::renderDataTable({ DT::datatable(plot_data(), options = list(scrollX = TRUE, sScrollY = '75vh', scrollCollapse = TRUE), extensions = list("Scroller")) })

По крайней мере, так видно. Если у кого есть дополнительные идеи, я бы хотел их услышать. Приветствует. --Nate