Shinydashboard的行为

时间:2019-04-10 19:08:58

标签: shinydashboard

我正在使用Shinydashboard框功能。我想实现以下几点。

1)在渲染输出表上,输入框应折叠。我有什么办法可以做到这一点?

2)当我要在“第一个盒子”事件后从“第二个盒子”打印表格时,第二个提交按钮的响应没有响应。要解决此问题需要做什么?

3)进度栏显示在页面加载中,但仅应显示在渲染输出表上。如何解决呢?

ui.R

library(shiny)
library(shinyjs)
library(shinydashboard)
library(DT)
shinyUI(
   dashboardPage(title = "My Page",  
   dashboardHeader(
     title = "My Header",
     titleWidth = 200
   ),
   dashboardSidebar(
     width = 200,
     sidebarMenu(
       menuItem("My Data", selected = FALSE, 
         menuSubItem(text = "My Data", tabName = "my_data", newtab = TRUE, selected = FALSE)
       )
     )
   ),
   dashboardBody(
     useShinyjs(),
     tabItems(
       # First tab content
       tabItem(tabName = "my_data",
          h2("Please select fields"),
          div(
            fluidRow
            (
              box(title = 'First Box', background = 'green', collapsible = TRUE, collapsed = TRUE,
              column(2,
              actionButton("sub_mt", "Show MT Cars")
            )),
            box(title = 'Second Box', background = 'yellow', collapsible = TRUE, collapsed = TRUE,   
            column(2,
            actionButton("sub_iris","Show Iris Data")
            ))   
            )
           )
       ) 
     ),
    DT::dataTableOutput('optable'),
    textOutput('message')
    ) 
))

server.R

library(shiny)
library(shinydashboard)
library(DT)
library(shinyjs)
if (interactive()) {
shinyServer(function(session,input,output){
  dt_mtcars <- eventReactive(input$sub_mt, 
                  {
                   mtcars
                  })
  dt_iris <- eventReactive(input$sub_iris, 
                  {
                 iris
                  })
  output$optable <- DT::renderDataTable({
    withProgress(message = 'Data Loading...',value = 0, {
      for (i in 1:15) {
        incProgress(1/15)
        Sys.sleep(0.25)
      }
    })
    if(input$sub_mt == TRUE)
    {
      dt_tab=dt_mtcars()
    } else{
      dt_tab=dt_iris()
    }
    datatable(dt_tab, rownames = FALSE, filter = 'top', 
              style = 'bootstrap', selection = 'single')}
  )
 }
)
}

1)在渲染输出表上,输入框应自动折叠。

2)我希望eventReactive在所有情况下都可以工作。

3)ProgressBar应该仅在加载表时显示,而不在页面加载时显示。

0 个答案:

没有答案