单击另一个时,如何取消选择DT行

时间:2016-05-01 13:40:50

标签: r shiny dt

我有这个简单的闪亮应用程序,它在文本框中呈现用户选择的任何行。我希望一次只能选择一行,因此我将DT选项设置为selection = 'single',这会在单击其他行时正确地取消选择表中的任何行。

然后在文本框中保留通过单击其他行而取消选择的行的名称,并在先前选定的行的名称后追加新名称。

enter image description here

我注意到,实际上我可以通过双击它在文本框中删除任何先前选择的行(在表格中看起来没有效果的东西)。

在我的实际应用程序中,我有一个绘图函数,它只接受表中的一个值,所以我需要找到一种方法来通过input$x_rows_selected发送一个且只有一个值。

library(shiny)
library(DT)

# Define UI for application that draws a histogram
ui <- shinyUI(fluidPage(

  h1('A Server-side Table'),

  fluidRow(
    column(9, DT::dataTableOutput('x3')),
    column(3, verbatimTextOutput('x4'))
  )


  ))

# Define server logic required to draw a histogram
server <- shinyServer(function(input, output, session) {


  # server-side processing
  mtcars2 = mtcars[, 1:8]
  output$x3 = DT::renderDataTable(mtcars2, server = TRUE, selection = 'single')

  # print the selected indices
  output$x4 = renderPrint({
    s = input$x3_rows_selected
    if (length(s)) {
      cat('These rows were selected:\n\n')
      cat(s, sep = ', ')
    }
  })

})

# Run the application 
shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:0)

这看起来像CRAN版本的DT(版本0.1)中的一个错误,该版本已在GitHub版本中修复(使用devtools::install_github("rstudio/DT"安装)