R Flink Jmeter 板可折叠菜单带输入的项目

myss37ts  于 2023-02-14  发布在  Flink
关注(0)|答案(1)|浏览(188)

我正在尝试使用library(shinydashboard)实现一个fileInput,为用户提供上传文件的选项(就像here使用一个基本的闪亮UI所做的那样-请找到下面的示例代码)。
我想把fileInput放在dashboardSidebar中,放在一个可扩展的menuItem中,但是不知道它应该放在shinydashboard结构的哪里。

library(shiny)

ui <- fluidPage(
  titlePanel("Uploading Files"),
  sidebarLayout(
    sidebarPanel(
      fileInput("file1", "Choose CSV File",
                multiple = TRUE,
                accept = c("text/csv",
                           "text/comma-separated-values,text/plain",
                           ".csv")),
      tags$hr(),
      checkboxInput("header", "Header", TRUE),
      radioButtons("sep", "Separator",
                   choices = c(Comma = ",",
                               Semicolon = ";",
                               Tab = "\t"),
                   selected = ","),
      radioButtons("quote", "Quote",
                   choices = c(None = "",
                               "Double Quote" = '"',
                               "Single Quote" = "'"),
                   selected = '"'),
      tags$hr(),
      radioButtons("disp", "Display",
                   choices = c(Head = "head",
                               All = "all"),
                   selected = "head")
    ),
    mainPanel(
      tableOutput("contents")
    )
  )
)

server <- function(input, output) {
  output$contents <- renderTable({
    req(input$file1)
    df <- read.csv(input$file1$datapath,
                   header = input$header,
                   sep = input$sep,
                   quote = input$quote)
    if(input$disp == "head") {
      return(head(df))
    }
    else {
      return(df)
    }
  })
}

shinyApp(ui, server)
rt4zxlrg

rt4zxlrg1#

**编辑:**我稍微清理了一下代码,使childfull和childless menuItem的区别更加清楚-参数expandedNamestartExpanded只能用于childfull menuItem,而tabNameselected只能用于childless menuItem

library(shiny)
library(shinydashboard)

ui <- function(req) {
  dashboardPage(
    dashboardHeader(title = "Simple tabs"),
    dashboardSidebar(sidebarMenu(
      id = "sidebarItemSelected",
      menuItem(
        "Childfull menuItem",
        menuItem(
          "Childless menuItem 1",
          tabName = "childlessTab1",
          icon = icon("dashboard"),
          selected = TRUE
        ),
        fileInput("upload", "Upload"),
        bookmarkButton(),
        expandedName = "childfullMenuItem",
        startExpanded = TRUE
      ),
      menuItem(
        "Childless menuItem 2",
        icon = icon("th"),
        tabName = "childlessTab2",
        badgeLabel = "new",
        badgeColor = "green"
      )
    )),
    dashboardBody(tabItems(
      tabItem(tabName = "childlessTab1",
              h2("Dashboard tab content")),
      
      tabItem(tabName = "childlessTab2",
              h2("Widgets tab content"))
    ))
  )
}

server <- function(input, output, session) {
  observe({
    cat(
      paste(
        "\nsidebarItemSelected:",
        input$sidebarItemSelected,
        "\nsidebarItemExpanded:",
        input$sidebarItemExpanded,
        "\nsidebarCollapsed:",
        input$sidebarCollapsed,
        "\n"
      )
    )
  })
}

shinyApp(ui, server, enableBookmarking = "url")

初步答复:

当然-这是可能的(此示例的修改版本):

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(title = "Simple tabs"),
  dashboardSidebar(
    sidebarMenu(
      menuItem("Dashboard", fileInput("upload", "Upload"), tabName = "dashboard", icon = icon("dashboard")),
      menuItem("Widgets", icon = icon("th"), tabName = "widgets",
               badgeLabel = "new", badgeColor = "green")
    )
  ),
  dashboardBody(
    tabItems(
      tabItem(tabName = "dashboard",
              h2("Dashboard tab content")
      ),
      
      tabItem(tabName = "widgets",
              h2("Widgets tab content")
      )
    )
  )
)

server <- function(input, output, session) {}

shinyApp(ui, server)

相关问题