繁体   English   中英

在R Shiny中顺利渲染DT数据表

[英]Render DT datatable smoothly in R Shiny

当DT数据表最初在闪亮的应用程序中呈现时,它似乎从顶部开始增长,并将所有其他元素向下推入页面。 有没有一种方法可以使数据表更加平滑,以免其他元素像这样被推开?

您可以在示例代码中看到h1首先在屏幕顶部渲染,然后在数据表渲染时向下推。 我尝试过为表格创建一个具有最小高度的div,但是它没有用。

library(shiny)
library(DT)

ui <- fluidPage(

DT::dataTableOutput('table'),

h1('placeholder text'))

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

    my_data <-
        data.frame(
            a = rnorm(5000),
            b = rnorm(5000),
            c = rnorm(5000),
            d = rnorm(5000)
        )

    output$table <- DT::renderDataTable({

        datatable(my_data, options = list(pageLength = 25))

    })

}

shinyApp(ui, server)

DT包中有一些不错的功能,可以在初始渲染后更改数据时平滑地重新加载数据(使用replaceData())。 但是,我似乎无法一开始就平滑地呈现数据。

因此,您可以定义一个以像素为单位的高度,但可能与您在服务器上设置的pageLength参数不匹配。 我认为,如果要控制页面渲染中的高度,最好的方法是定义以像素为单位的高度,而不是页面长度。 这样,在加载页面和呈现表格时,将强制高度:

library(shiny)
library(DT)

ui <- fluidPage(

  DT::dataTableOutput('table', height = "500px"),

  h1('placeholder text'))

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

  my_data <-
    data.frame(
      a = rnorm(5000),
      b = rnorm(5000),
      c = rnorm(5000),
      d = rnorm(5000)
    )

  output$table <- DT::renderDataTable({

    datatable(my_data)

  })

}

shinyApp(ui, server)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM