【发布时间】:2015-03-03 10:40:14
【问题描述】:
我有一个包含 checkboxGroupInput 的 R Shiny 应用程序,我正在尝试使用 updateCheckboxGroupInput 函数创建一个“全选”按钮。 您可以在下面看到完整的代码,但基本上我是这样定义 cb 组的:
checkboxGroupInput("campaigns","Choose campaign(s):",campaigns_list)
然后,单击按钮,调用函数:
updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list,selected=campaigns_list)
我有迹象表明该函数已运行,但它实际上是取消选中复选框。 顺便说一句,当我在定义 cbGroupInput 时选择了它确实有效,但不是在函数上。
谢谢!
这是我的服务器。R:
library(shiny)
source('usefulFunctions.R')
shinyServer(function(input, output, session) {
output$cascading <- renderUI({
provider_id <- input$provider
if (provider_id == "") return(NULL)
campaigns_list <<- t(getCampaigns(provider_id))
tagList(
checkboxGroupInput("campaigns","Choose campaign(s):",
choices = campaigns_list, selected = campaigns_list),
actionLink("selectall","Select All")
)
})
observe({
if(is.null(input$selectall)) return(NULL)
if (input$selectall > 0)
{
print(campaigns_list)
updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list,selected=campaigns_list)
}
})
})
【问题讨论】:
-
shinyWidgets库有一个很好的函数pickerInput(),它带有一个很好的“全选/取消全选”输入接口:dreamrs.github.io/shinyWidgets/index.html