选择下拉列表显示所有项目

时间:2017-10-24 09:10:55

标签: java css shiny dropdown selectize.js

我有一个小问题,我无法解决。我认为解决方案非常简单,而且我对java语言知之甚少。 这是一个小例子:

    <input type="text" required name="title" [(ngModel)]="titleModel">
    <span style="color:red" *ngIf="titleModel?.length > 10">
          10 max
    </span>
    <span style="color:red" *ngIf="!titleModel">
          required
    </span>
    <button [disabled]="titleModel?.length > 10 || !titleModel">OK</button>

当用户点击第一个selectInput以进行选择时,我想显示列表的所有元素,而不是显示列表的前七个元素。 感谢。

2 个答案:

答案 0 :(得分:4)

我认为shinyWidgets包是你需要的。它有一个pickerInput,它将显示所有选项

#install.packages("shinyWidgets")
library(shiny)
library(shinyWidgets)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      pickerInput("userInput", label = "Select User", choices = 1:21, options = list(style = "btn-primary")),
      selectInput("LongInput", "Long Strings", c("This is a long long string that is long.",
                                                 "This is a long long string that is longer."))
    ),mainPanel()
  )
)

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

shinyApp(ui, server)

enter image description here

答案 1 :(得分:3)

您可以使用css tags$style(type='text/css', ".selectize-dropdown-content {max-height: 1000px !important; }")来执行此操作

这样的事情:

ui <- (fluidPage(
  tags$style(type='text/css', ".selectize-dropdown-content {max-height: 1000px !important; }"), 
  sidebarLayout(
    sidebarPanel(
      selectInput("userInput","Select User", c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21),
                  selected=1),
      selectInput("LongInput", "Long Strings", c("This is a long long string that is long.",
                                                 "This is a long long string that is longer."))
    ),


    # allows for long texts to not be wrapped, and sets width of drop-down
    tags$head(
      tags$style(HTML('
                      .selectize-input {
                      white-space: nowrap;
                      }
                      #LongInput + div>.selectize-dropdown{
                      width: 660px !important;
   }
                      #userInput + div>.selectize-dropdown{
                      width: 357px !important; maxItems: 21;
                      }
                      '
      )
      )
      )
      )
      ))

你得到:

enter image description here