Как отменить выбор строки DT при нажатии на другую строку

У меня есть это простое блестящее приложение, которое отображает в текстовом поле любую строку, которую выбирает пользователь. Я хочу, чтобы за раз выбиралась только одна строка, поэтому я установил для параметра DT значение selection = 'single', которое правильно отменяет выбор любой строки из таблицы при нажатии на другую.

И все же в текстовом поле сохраняется имя строки, которую я не выбрал, щелкнув другую, и новое имя добавляется после имени ранее выбранной строки.

введите здесь описание изображения

Я заметил, что на самом деле я могу удалить из текстового поля любую ранее выделенную строку, дважды щелкнув по ней (то, что визуально не влияет на таблицу).

В моем реальном приложении у меня есть функция построения графика, которая будет принимать только одно значение из таблицы, поэтому мне нужно найти способ отправить через 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)

person CptNemo    schedule 01.05.2016    source источник
comment
Я знаю, что быстрое решение может быть s <- s[length(s)], но я бы предпочел понять, как управлять input$x_rows_selected   -  person CptNemo    schedule 01.05.2016


Ответы (1)


Это похоже на ошибку в версии DT для CRAN (версия 0.1), которая была исправлена ​​в версии GitHub (установка с помощью devtools::install_github("rstudio/DT").

person Xiongbing Jin    schedule 01.05.2016