ColReorder DT扩展与shinyjqui相结合

时间:2018-06-14 16:06:52

标签: javascript r datatables shiny dt

我的目标是显示一些数据表和:

1)启用对所有表格进行重新排序的列

2)启用chaning tables order。

我的第一次尝试是将shinyjqui::jqui_sortableDT::datatable结合使用。

对于列重新排序,ColReorder扩展名做得很好,例如

library(DT)
datatable(mtcars,
          extensions = c("ColReorder"),
          options = list(colReorder = TRUE))

但是,使用jqui_sortable添加互动后,列重新排序不再有效:

library(DT)
library(ggplot2)

server <- function(input, output) {
  output$tb <-renderDataTable({
    datatable(mtcars,
              extensions = c("ColReorder"),
              options = list(colReorder = TRUE))
  })

  output$gg <- renderPlot({
    ggplot(mtcars, aes(x = cyl, y = mpg, color = factor(vs))) + 
      geom_point() + 
      theme(legend.position= "none")
  })
}

ui <- fluidPage(
  jqui_sortable(div(plotOutput('gg', width = '200px', height = '200px'),
                    dataTableOutput('tb', width = '200px', height = '200px')
                    ))
)

shinyApp(ui, server)

我很感激任何想法如何解决或提出另一种方法:)

1 个答案:

答案 0 :(得分:2)

options参数添加到jqui_sortable函数:options = list(cancel = '.dataTables_scroll')。在这种情况下,它取消了对具有类.dataTables_scroll的元素的排序功能,该类是整个表(具有列名)。