Shiny R:RowReorder,不仅对第一个值重新排序所有值

问题描述 投票:0回答:1

我有简单的Shiny appDT table

library(shiny)
library(DT)

iris2 = head(iris, 30)


server <- function(input, output) {
    output$tb <-DT::renderDataTable(server=FALSE,{
        datatable(
            iris2,
            colnames = c(colnames(iris2)), extensions = 'RowReorder',
            options = list(rowReorder = TRUE))
    })
}


ui <- fluidPage(dataTableOutput('tb', width = '200px', height = '200px'))

shinyApp(ui, server)

但是,当我尝试调整表格行时,只有第一列改变了位置。这可能与ReorderRow的配置有关,如here所述。不幸的是,我不知道如何在Shiny应用程序中实现JavaScript,尤其是数据表选项。

r shiny dt
1个回答
0
投票

必须添加行名称并对其进行排序,如github issue中所述。工作解决方案只需要在order = list(list(0, 'asc'))中添加DT options

library(shiny)
library(DT)

iris2 = head(iris, 30)


server <- function(input, output) {
  output$tb <-DT::renderDataTable(server=FALSE,{
    datatable(
      iris2,
      colnames = c(colnames(iris2)), extensions = 'RowReorder',
      options = list(order = list(list(0, 'asc')), rowReorder = TRUE))
  })
}


ui <- fluidPage(dataTableOutput('tb', width = '200px', height = '200px'))

shinyApp(ui, server)
© www.soinside.com 2019 - 2024. All rights reserved.