【发布时间】:2019-02-04 18:04:17
【问题描述】:
R(版本 3.4.1) 我正在使用闪亮的(版本 1.0.5)中的 DT(版本 0.4)包,并且需要在用户再次单击它时防止取消选择已选择的行。例如,在下图中,如果用户再次单击第 3 行,则不应取消选择。但是,如果用户选择一个新行,则该新行将被选中,而先前的行将被取消选择。
我想我需要的是让数据表完全忽略 已选择行上的点击事件。
我尝试使用shinyjs::onclick,如下所示,但并不理想,因为它似乎“取消选择并重新选择”选定的行(蓝色突出显示消失并在再次单击时重新出现) 而不是防止取消选择。
library(shiny)
library(DT)
library(shinyjs)
shinyApp(
ui <- shinyUI(
fluidPage(
shinyjs::useShinyjs(),
DTOutput("test")
)
),
server <- shinyServer(function(input, output, session) {
output$test <- renderDT({
datatable(head(iris), selection = 'single')
})
shinyjs::onclick("test",
selectRows(dataTableProxy("test"), selected = input$test_rows_selected)
)
})
)
我想知道是否有一种简单的方法可以做到这一点。谢谢!
【问题讨论】:
-
Shree,我已经编辑了我的第一个答案以提供一个可行的解决方案。告诉我它是否适合你。
标签: javascript r datatables shiny dt