css
  • r
  • shiny
  • fluid-layout
  • 2017-01-05 3 views 2 likes 
    2
    library(shiny) 
        library(shinyBS) 
        #library(shinydashboard) 
        shinyUI(fluidPage(
         selectInput(inputId = "select1", label = "Select Id", choices = c(1,2,3)), 
         textOutput(outputId = 'out'), 
    
    
         id1 <- 'active', 
         titlePanel("Testing 3"), 
         fluidRow(
         column(4,bsButton("Save", "Save",size="medium", type="action"), offset=6,style='width:150px;height:80px;'), 
         column(2,bsButton("Edit", "Edit", size="medium", type="action")), 
         fluidRow(), 
         fluidRow(
          column(2,h4("xyz"), offset=1), 
           column(1, bsButton("deadYes", "yes", size="medium",type="toggle")), 
             column(1, bsButton("deadNo", "no", size="medium",type="toggle", value = TRUE))) 
        ),br(), 
    
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4(" Boxes"), offset=3)), 
         column(2, conditionalPanel(condition = "input.deadNo", bsButton("deep0", "0", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("deep1", "1", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("deep2", "2", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("deep3", "3", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("deep4", "4", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("deep5", "5", size="medium",type="toggle",class=id1))) 
         ),br(), 
    
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4("Medium Boxes"), offset=3)), 
         column(2, conditionalPanel(condition = "input.deadNo",bsButton("med0", "0", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("med1", "1", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("med2", "2", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("med3", "3", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("med4", "4", size="medium",type="toggle", class=id1))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("med5", "5", size="medium",type="toggle"))) 
        ),br(), 
    
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4("bees in Deeps"), offset=3)), 
         column(1, conditionalPanel(condition = "input.deadNo",numericInput('frameDeep', '',0))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameD10", "10",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameD20", "20",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameD30", "30",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameD1", "1",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameD2", "2",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameD3", "3",size="medium", type="action"))), 
         column(1,conditionalPanel(condition = "input.deadNo", bsButton("frameD4", "4",size="medium", type="action", class="active"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameD5", "5",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameD6", "6",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameD7", "7",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameD8", "8",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameD9", "9",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameDClear", "Clear",size="medium", type="action"))) 
        ),br(), 
    
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4("bees in Mediums"), offset=3)), 
         column(1, conditionalPanel(condition = "input.deadNo",numericInput('frameMedium', '',0))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameM10", "10",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameM20", "20",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameM30", "30",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameM1", "1",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameM2", "2",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameM3", "3",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameM4", "4",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameM5", "5",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameM6", "6",size="medium", type="action", class='active'))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameM7", "7",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameM8", "8",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameM9", "9",size="medium", type="action"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("frameMClear", "Clear",size="medium", type="action"))) 
        ),br(), 
    
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4("Queen Status"), offset=3)), 
         column(2, conditionalPanel(condition = "input.deadNo",bsButton("queenStatusQR", "QR", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("queenStatusQRC", "QRC", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("queenStatusQLC", "QLC", size="medium",type="toggle", class="active"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("queenStatusPQ", "PQ", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("queenStatusQL", "QL", size="medium",type="toggle"))) 
        ),br(), 
    
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4("seen"), offset=3)), 
         column(2, conditionalPanel(condition = "input.deadNo",bsButton("queenSeenYes", "Yes", size="medium",type="toggle", class='active'))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("queenSeenNo", "No", size="medium",type="toggle"))) 
        ),br(), 
    
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4("E seen"), offset=3)), 
         column(2,conditionalPanel(condition = "input.deadNo", bsButton("eggsSeenYes", "Yes", size="medium",type="toggle", class='active'))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("eggsSeenNo", "No", size="medium",type="toggle"))) 
        ),br(), 
    
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4("brood pattern"), offset=3)), 
         column(3, conditionalPanel(condition = "input.deadNo",bsButton("openBroodNone", "none", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("openBroodWeak", "weak", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("openBroodFair", "fair", size="medium",type="toggle", class="active"))), 
         column(1,conditionalPanel(condition = "input.deadNo", bsButton("openBroodStrong", "strong", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("openBroodOutstanding", "outstanding", size="medium",type="toggle"))) 
        ),br(), 
    
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4("Capped brood pattern"), offset=3)), 
         column(3,conditionalPanel(condition = "input.deadNo", bsButton("cappedBroodNone", "none", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("cappedBroodWeak", "weak", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("cappedBroodFair", "fair", size="medium",type="toggle", class='active'))), 
         column(1,conditionalPanel(condition = "input.deadNo", bsButton("cappedBroodStrong", "strong", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo", bsButton("cappedBroodOutstanding", "outstanding", size="medium",type="toggle"))) 
        ),br(), 
    
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4("brood disease"), offset=3)), 
         column(2,conditionalPanel(condition = "input.deadNo", bsButton("broodDiseaseNone", "none", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo", bsButton("broodDiseaseMild", "mild", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("broodDiseaseMod", "mod", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo", bsButton("broodDiseaseSevere", "severe", size="medium",type="toggle", class='active'))), 
         column(1,conditionalPanel(condition = "input.deadNo && !(input.broodDiseaseNone)", bsButton("broodDiseaseSnotty", "snotty", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo && !(input.broodDiseaseNone)", bsButton("broodDiseaseFoul", "foul", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo && !(input.broodDiseaseNone)", bsButton("broodDiseaseDryChalk", "Dry chalk", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo && !(input.broodDiseaseNone)", bsButton("broodDiseaseYellow", "Yellow", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo && !(input.broodDiseaseNone)", bsButton("broodDiseaseOther", "Other", size="medium",type="toggle"))) 
        ), br(), 
    
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4("Prevalence of adult disease"), offset=3)), 
         column(2, conditionalPanel(condition = "input.deadNo",bsButton("adultDiseaseNone", "none", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("adultDiseaseMild", "mild", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo",bsButton("adultDiseaseMod", "mod", size="medium",type="toggle", class="active"))), 
         column(1,conditionalPanel(condition = "input.deadNo", bsButton("adultDiseaseSevere", "severe", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo && !(input.adultDiseaseNone)",bsButton("adultDiseaseDefWing", "Def Wing", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo && !(input.adultDiseaseNone)", bsButton("adultDiseaseKwing", "Kwing", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo && !(input.adultDiseaseNone)",bsButton("adultDiseaseJittery", "jittery", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo && !(input.adultDiseaseNone)", bsButton("adultDiseaseParalysis", "paralysis", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo && !(input.adultDiseaseNone)", bsButton("adultDiseasePoop", "poop", size="medium",type="toggle"))), 
         column(1, conditionalPanel(condition = "input.deadNo && !(input.adultDiseaseNone)",bsButton("adultDiseaseOther", "other", size="medium",type="toggle"))) 
        ),br(), 
    
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4("Prevalence of 2ndary pests"), offset=3)), 
         column(2,conditionalPanel(condition = "input.deadNo", bsButton("secondaryPestsNone", "none", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo", bsButton("secondaryPestsMild", "mild", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo", bsButton("secondaryPestsMod", "mod", size="medium",type="toggle", class="active"))), 
         column(1,conditionalPanel(condition = "input.deadNo", bsButton("secondaryPestsSevere", "severe", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo && !(input.secondaryPestsNone)", bsButton("secondaryPestsWaxMoth", "Wax moth", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo && !(input.secondaryPestsNone)", bsButton("secondaryPestsHiveBeetle", "Hive Beetle", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo && !(input.secondaryPestsNone)", bsButton("secondaryPestsVarroa", "Varroa", size="medium",type="toggle"))), 
         column(1,conditionalPanel(condition = "input.deadNo && !(input.secondaryPestsNone)", bsButton("secondaryPestsOther", "other", size="medium",type="toggle"))) 
        ),br(), 
    
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4("Remarks"), offset=3)), 
         column(8,conditionalPanel(condition = "input.deadNo",tags$textarea(id="Remarks",rows=1,cols=80, ""))) 
        ) 
        )) 
    server.r :- 
        library(shiny) 
    
    shinyServer(function(input, output, session) { 
    
        n=1 
    
        output$out <- renderText(
        if (input$select1==3) { 
        print(input$select1) 
         # n="active" 
        }else { 
        print(input$select1) 
        # n="active" 
        } 
    ) 
    

    })Fluid строки в г

    Я хочу, чтобы динамически кнопка выбора во всех строках жидкости, когда мы изменяем значение в selectInput. Предположим, если значение в выбранном входе равно 2, вместо кнопки «deep5» следует выбрать кнопку «deep2» (или другую кнопку).

    ответ

    3

    Вам нужно будет использовать renderUI для визуализации bsButton для достижения этой цели, которая потребует некоторой реструктуризации коды, так как bsButton экземпляров должны перейти к функции shinyServer. Я сделал небольшую часть, чтобы показать вам, как это будет работать.

    library(shiny) 
    library(shinyBS) 
    
    u <- shinyUI(fluidPage(
         selectInput(inputId = "select1",label = "Select Id",choices = c(1,2,3,4)), 
         textOutput(outputId = 'out'), 
    
    
         id1 <- 'active', 
         titlePanel("Testing 3"), 
         fluidRow(
         column(4,bsButton("Save","Save",size = "medium",type = "action"),offset = 6,style = 'width:150px;height:80px;'), 
         column(2,bsButton("Edit","Edit",size = "medium",type = "action")), 
         fluidRow(), 
         fluidRow(
          column(2,h4("xyz"),offset = 1), 
           column(1,bsButton("deadYes","yes",size = "medium",type = "toggle")), 
             column(1,bsButton("deadNo","no",size = "medium",type = "toggle",value = TRUE))) 
        ),br(), 
         fluidRow(
         column(2,conditionalPanel(condition = "input.deadNo",h4(" Boxes"),offset = 3)), 
         column(2,conditionalPanel(condition = "input.deadNo",uiOutput("deep0"))), 
         column(1,conditionalPanel(condition = "input.deadNo",uiOutput("deep1"))), 
         column(1,conditionalPanel(condition = "input.deadNo",uiOutput("deep2"))), 
         column(1,conditionalPanel(condition = "input.deadNo",uiOutput("deep3"))), 
         column(1,conditionalPanel(condition = "input.deadNo",uiOutput("deep4"))), 
         column(1,conditionalPanel(condition = "input.deadNo",uiOutput("deep5"))) 
        ),br() 
        ) 
    ) 
    
    s <- shinyServer(function(input,output,session) { 
    
        act0 <- reactive({ ifelse (input$select1 == 0,"active","") }) 
        act1 <- reactive({ ifelse (input$select1 == 1,"active","") }) 
        act2 <- reactive({ ifelse (input$select1 == 2,"active","") }) 
        act3 <- reactive({ ifelse (input$select1 == 3,"active","") }) 
        act4 <- reactive({ ifelse (input$select1 == 4,"active","") }) 
        output$deep0 = renderUI({ bsButton("deep0","0",size = "medium",type = "toggle",class = act0()) }) 
        output$deep1 = renderUI({ bsButton("deep1","1",size = "medium",type = "toggle",class = act1()) }) 
        output$deep2 = renderUI({ bsButton("deep2","2",size = "medium",type = "toggle",class = act2()) }) 
        output$deep3 = renderUI({ bsButton("deep3","3",size = "medium",type = "toggle",class = act3()) }) 
        output$deep4 = renderUI({ bsButton("deep4","4",size = "medium",type = "toggle",class = act4()) }) 
    }) 
    shinyApp(ui = u,server = s) 
    

    получают:

    enter image description here

    +0

    Он работал, спасибо. Попытка выяснить, как работают renderUI и bsButton. –

    Смежные вопросы