1

元のデータセットは非常に大きいため、アイリス データセットを使用して問題を再現しました。花の説明を含む列「new_var」を追加しました。私が抱えている問題は、ドロップダウン メニューから複数の入力 (> 3) を選択すると、ドロップダウンから残りの値を表示するようにサイドバーの長さが調整されないことです。

サイドバーの長さを増やしてみましたが、うまくいきません。dashboardSidebar を fluidPage でラップしようとしましたが、どちらも機能しません。

私が本当に探しているのは、サイドバーの長さを動的に調整して、スクロールしてすべての値を表示したり、垂直スクロール バーを提供したりできるかどうかです。ありがとう

library(datasets)
library(shiny)
library(shinydashboard)
library(DT)

data(iris)
x <- c("Small flowers","Flowers (or heads) borne singly on isolated stems or arising individually from leaf axils. Not part of a larger group.", "A simple, indeterminate inflorescence consisting of stalked flowers attached to a central stem and forming a more or less elongated cluster. The stalk of a flower is termed a pedicle and pedicled flowers are implied by the term raceme when used alone in the specific sense. ", "An indeterminate inflorescence consisting of stalkless flowers attached to a central stem, generally forming a highly elongated cluster. A raceme of stalkless flowers. ", "An indeterminate inflorescence forming a convex or flat-topped cluster, essentially a contracted raceme. Typically flowers arise from a central axis on stalks (pedicles) of different lengths that bring them all to near the same height. The term is also applied to racemes of similar shape with branching pedicles. The outermost flowers generally open first. ")
iris$new_var <- rep(x, each = 30)


ui <- 
  dashboardPage(
    dashboardHeader(title = strong("DATA LOADER"),titleWidth = 240),
    dashboardSidebar(

      sidebarMenu(
        selectizeInput("newvar", "Choose type of flower:", choices = sort(unique(iris$new_var)), multiple = TRUE)

      )
    ),
    dashboardBody(
      fluidRow(
        dataTableOutput("df"),
        br()
      )))

server <- function(input, output){
  output$df <- renderDataTable(reactive({
    iris[iris$new_var %in% input$newvar, ]
  })())
}
shinyApp(ui, server)
4

1 に答える 1

3

サイドバーの下方向の重なり部分を非表示に保つ css スタイル定義があります。ページをスクロール可能にするには、その定義をオーバーライドするだけです。

すべてのダッシュボード要素を囲む「ラッパー」には がoverflow: hidden !importantあり、Web ページというよりも実際のダッシュボードのように見えるようにしています。dashboardBodyそれ自体がスクロール可能であるため、これはサイドバーの可視性にのみ影響します。

headタグ内にスタイル定義を書きました。この方法では、この定義が UI のどこに配置されても問題ありません。これは、HTML ヘッドに追加されるためです。

これで問題が解決しない場合は、コメントしてください。

以下のコード:

library(datasets)
library(shiny)
library(shinydashboard)
library(DT)

data(iris)
x <- c("Small flowers", "Flowers (or heads) borne singly on isolated stems or arising individually from leaf axils. Not part of a larger group.", "A simple, indeterminate inflorescence consisting of stalked flowers attached to a central stem and forming a more or less elongated cluster. The stalk of a flower is termed a pedicle and pedicled flowers are implied by the term raceme when used alone in the specific sense. ", "An indeterminate inflorescence consisting of stalkless flowers attached to a central stem, generally forming a highly elongated cluster. A raceme of stalkless flowers. ", "An indeterminate inflorescence forming a convex or flat-topped cluster, essentially a contracted raceme. Typically flowers arise from a central axis on stalks (pedicles) of different lengths that bring them all to near the same height. The term is also applied to racemes of similar shape with branching pedicles. The outermost flowers generally open first. ")
iris$new_var <- rep(x, each = 30)

ui <- 
  dashboardPage(
    dashboardHeader(title = strong("DATA LOADER"),titleWidth = 240),
    dashboardSidebar(
      tags$head(tags$style(".wrapper {overflow: visible !important;}")),
      sidebarMenu(
        selectizeInput("newvar", "Choose type of flower:", choices = sort(unique(iris$new_var)), multiple = TRUE)

      )
    ),
    dashboardBody(
      fluidRow(
        dataTableOutput("df"),
        br()
      )))

server <- function(input, output){
  output$df <- renderDataTable(reactive({
    iris[iris$new_var %in% input$newvar, ]
  })())
}
shinyApp(ui, server)
于 2016-07-31T20:13:12.370 に答える