如何解决R Shiny DT行选择和行编辑冲突
我有一个正在使用的Shiny应用程序,并且正在使用renderDataTable
向用户显示数据框。现在,用户需要单击表的一行以拉出有关该行的其他信息。同时,我将数据表设置为“行”可编辑。这确实引起了一些问题。为了启动该行的编辑模式,需要双击该行,但是单击多次会切换该行的选定状态。
有没有一种方法可以启动行编辑而不必双击或在出现双击时禁用行选择状态?
编辑:这是我对DT的调用:
output$image_list = DT::renderDataTable({
if(!('data.frame' %in% class(values$images))) {
return(NULL)
}
datatable(values$images,rowname=FALSE,options=list(columnDefs = list(list(visible=FALSE,targets=c(0,1,3,6)))),colnames=c('ID','Full File Name','Filename','Directory','Range Scale','Heading','Status'),selection = 'single',editable = list(target='row',disable = list(columns=c(0,2,6)))
) %>%
formatStyle('Status',target='row',backgroundColor = styleEqual(c('Incomplete','Complete'),c('#FF9999','#99FF99')))
})
版本信息
Tool | Version
-----|--------
R | 4.0
Shiny| 1.5.0
DT | 0.15
解决方法
我不确定是否可以理解,但这可能会有所帮助。使用下面的应用程序,您只能通过单击不可编辑列中的单元格来选择行。因此,双击可编辑单元格不会触发行选择。不确定是否有帮助...告诉我什么。
library(shiny)
library(DT)
dat <- iris[1:6,]
nonEditableColumns <- c(3,4)
ui <- fluidPage(
br(),DTOutput("dtable")
)
server <- function(input,output,session) {
output[["dtable"]] <- renderDT({
datatable(
dat,extensions = "Select",selection = "none",editable = list(
target = "row",disable = list(columns = nonEditableColumns)
),options = list(
columnDefs = list(
list(className = "selectable",targets = nonEditableColumns),list(className = "dt-center",targets = "_all")
),select = list(style = "single",selector = "td.selectable")
)
)
},server = FALSE)
}
shinyApp(ui,server)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。