R блестящая датируемая нумерация страниц и показать все строки в качестве параметров - PullRequest
3 голосов
/ 14 марта 2019

У меня есть дата в блестящем приложении, где я делаю нумерацию страниц, чтобы показать только 15 строк. Но могу ли я добавить опцию, в которой пользователь может видеть 15 строк за раз, используя нумерацию страниц или кнопку «Показать все», которая будет отображать все записи с полосой прокрутки.

library(shiny)
library(DT)
library(shinyWidgets)
library(shiny)


shinyApp(

  ui = navbarPage(
    title = 'DataTable',
    tabPanel('Display length',     DT::dataTableOutput('ex2'))
  ),

  server = function(input, output, session) {

    output$ex2 <- DT::renderDataTable(
      DT::datatable(
        iris, options = list(
          lengthMenu = list(c(5, 15, -1), c('5', '15', 'All')),
          pageLength = 15
        )
      )
    )

    }
    )

Ответы [ 2 ]

2 голосов
/ 14 марта 2019

Как насчет этого, используя расширение кнопок.Мы определяем пользовательскую кнопку, которая вызывает функцию javascript page.len(-1), где -1 означает все строки:

shinyApp(

  ui = navbarPage(
    title = 'DataTable',
    tabPanel('Display length',     DT::dataTableOutput('ex2'))
  ),

  server = function(input, output, session) {

    output$ex2 <- DT::renderDataTable(
      DT::datatable(
        iris, 
        extensions = 'Buttons',
        options = list(
          dom = 'Bfrtip',
          lengthMenu = list(c(5, 15, -1), c('5', '15', 'All')),
          pageLength = 15,
          buttons = list(
            list(
              extend = "collection",
              text = 'Show All',
              action = DT::JS("function ( e, dt, node, config ) {
                                    dt.page.len(-1);
                                    dt.ajax.reload();
                                }")
            )
          )
        )
      )
    )

  }
)
1 голос
/ 14 марта 2019
library(dplyr)
library(shiny)
library(DT)

shinyApp(

  ui = navbarPage(
    title = 'DataTable',
    tabPanel('Display length',     DT::dataTableOutput('ex2'))
  ),

  server = function(input, output, session) {

    output$ex2 <- DT::renderDataTable(
      DT::datatable(
        iris, 
        extensions = 'Buttons',
        options = list(
          dom = 'tpB',
          lengthMenu = list(c(5, 15, -1), c('5', '15', 'All')),
          pageLength = 15,
          buttons = list(
            list(
              extend = "collection",
              text = 'Show All',
              action = DT::JS("function ( e, dt, node, config ) {
                              dt.page.len(-1);
                              dt.ajax.reload();}")
            ),list(
              extend = "collection",
              text = 'Show Less',
              action = DT::JS("function ( e, dt, node, config ) {
                              dt.page.len(10);
                              dt.ajax.reload();}")

              )
              )
              )
            )
          )

  }
      )
...