【发布时间】:2018-10-08 13:01:17
【问题描述】:
我有一个 DT,我正在使用下面的代码添加另一个包含单选按钮的列。
library(shiny)
library(DT)
library(data.table)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
tags$span("Dummy")
),
mainPanel(
DT::dataTableOutput("TableWithRadio"))
)
)
server <- function(input, output) {
output$TableWithRadio <- DT::renderDataTable({
dt <- data.table(A = rnorm(1:10), B = rnorm(1:10))
data.table(dt, Select = shinyInputModelingDB(radioButtons, nrow(dt), "radio_"))
}, server = FALSE, escape = FALSE, rownames = F,
options = list(paging = FALSE, searching = F, ordering = F,
preDrawCallback = JS('function() {
Shiny.unbindAll(this.api().table().node()); }'),
drawCallback = JS('function() {
Shiny.bindAll(this.api().table().node()); } ')
))
shinyInputModelingDB = function(FUN, len, id, ...) {
inputs = character(len)
for (i in seq_len(len)) {
inputs[i] = as.character(FUN(paste0(id, i), choices = "", label = "",
selected = F, ...))
}
return(inputs)
}
}
# Run the application
shinyApp(ui = ui, server = server)
问题是我添加的单选按钮不在同一组下,因为用户可以选择多个单选按钮(存在于不同的行中)
我想要一个 DT,其中用户只能跨行从整个表中选择一个单选按钮。
有什么想法可以实现相同的目标吗?
【问题讨论】:
-
rhandsontables的解决方案是否也有效? -
@SeGa 我没有用过 rhandontables 所以不确定,但是如果我们能用 datatable 找到解决方案那就太好了
-
也许这个answer可以帮助你?