Функция RowGroup не работает при наличии нескольких отображаемых данных - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть требование показать 2 таблицы данных на 2 разных вкладках в блестящем приложении. Один представляет собой простой набор данных, тогда как другой использует расширение группы строк пакета DT. Когда я использую вкладки для отображения обеих таблиц данных, функция rowgroup, похоже, не работает.

library(shiny)
library(DT)
library(shinyjs)

ui <- fluidPage(
  dashboardBody(
    fluidRow(
      tabBox(width = "100%", 
             tabPanel("Table 1",
                      fluidRow(
                        column(12, withSpinner(DTOutput("my_table2",height="600px")))
                      )
             ),
             tabPanel("Table 2",
                      fluidRow(
                        column(12, withSpinner(DTOutput("my_table1",height="600px")))
                      )
             )
      )
    )
  )
)

server <- function(input, output) {

  output$my_table1<-DT::renderDataTable({

    datatable(mtcars[1:15,1:5],
              extensions = 'RowGroup', 
              options = list(rowGroup = list(dataSrc=c(3)),
                             pageLength = 20),
              callback = JS("
                                $('#DataTables_Table_0 tbody').on('click', 'tr.group', function () {
                                    var rowsCollapse = $(this).nextUntil('.group');
                                    $(rowsCollapse).toggleClass('hidden');
                                 });"))
  })

  output$my_table2<-DT::renderDataTable({

    datatable(mtcars[1:15,1:5],rownames = FALSE,
              options = list(
                order=list(list(1,'asc'),list(2,'asc')),
                scrollX = TRUE,
                pageLength = 100,
                lengthMenu = c(10, 20, 100),
                searching = TRUE)) %>%
      formatStyle(0, target= 'row',color = 'black', backgroundColor = 'silver',
                  fontWeight ='normal', lineHeight='100%')
  })
}

shinyApp(ui = ui, server = server)

Но если я отображаю datatable с rowgroup на 1-ой вкладке, она работает нормально. Но мое требование состоит в том, чтобы отобразить таблицу с группой строк во вкладке 2.

Может кто-нибудь помочь, пожалуйста

...