1

我刚刚使用DT. 我的问题是它filter='top'实际上似乎没有执行。checkboxGroupInput从 DT 组合和过滤是否有问题?我希望能够添加尽可能多的过滤选项。

ui.R

library(shiny)


shinyUI(pageWithSidebar(
  headerPanel('Database'),
  sidebarPanel(

    p('Welcome to the Database.'),

    p('(1) Use the dropdown menus to select a category, type, or  manufacturer.'),
    p('(2) Use the checkboxes below to add or remove information from the table.'),

    checkboxGroupInput('show_vars', 'Information:', names(Foods),
                       selected = names(Foods)),

  ),
  mainPanel(

    fluidRow(h1('A Server-side Table')),

    fluidRow(
      column(9, DT::dataTableOutput('x3')),
      column(3, verbatimTextOutput('x4'))
    )
  )
)
)

server.R

library(shiny)
library(DT)

shinyServer(function(input, output, session) {

  # server-side processing

  output$x3 = DT::renderDataTable(Foods[, input$show_vars, drop = TRUE], server = TRUE, 
                                  options = list(pageLength = 5, autoWidth = TRUE,
                                                 columnDefs = list(list(width = '200px', targets = "_all"))
                                                 , filter = 'top'))

  # print the selected indices
  output$x4 = renderPrint({
    s = input$x3_rows_selected
    if (length(s)) {
      cat('These rows were selected:\n\n')
      cat(s, sep = ', ')
    }
  })

  }
)
4

1 回答 1

6

将 filter='top' 移出,renderDataTable如下所示:

  output$x3 = DT::renderDataTable(iris[, input$show_vars, drop = TRUE], server = TRUE, 
                                  options = list(pageLength = 5, autoWidth = TRUE,
                                                 columnDefs = list(list(width = '200px', targets = "_all"))
                                                 ),filter='top')
于 2015-11-04T19:38:17.847 回答