我有这个简单的闪亮应用程序,它在文本框中呈现用户选择的任何行。我希望一次只能选择一行,因此我将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)
答案 0 :(得分:0)
这看起来像CRAN版本的DT(版本0.1)中的一个错误,该版本已在GitHub版本中修复(使用devtools::install_github("rstudio/DT"
安装)