Shiny04---DT和进度条在shiny中的应用

找了半天终于找到了shiny中显示进度条的方法,直接上demo,记录下。

UI脚本

### UI
library(shiny)
ui = fluidPage(
  sidebarPanel(
    #侧边栏的控制键
    width = 3,#设置侧边栏的宽度
    #时间控件
    dateRangeInput(
      inputId = "date",
      label = h2(strong(span("日  期", style = "color:blue"))),
      start = Sys.Date() - 7,
      #开始日期设置
      end = Sys.Date() - 1,
      language = "zh-CN",
      width = "90%",
      separator = "至"
    ),
    actionButton(inputId = "update", label = "提 交",icon=icon('play-circle'))
),
mainPanel(DT::dataTableOutput(outputId = 'tbl'))
)

Server脚本

if (!require("DT")){install.packages('DT')}

library(shiny)
library(DT)
## 对脚本里所有datatable()部分一起设置。
## 将表格中的描述文字改成中文
options(DT.options = list(
  searchHighlight = TRUE,
  language = list(
    info = '显示第_START_ 至 _END_ 项结果,共 _TOTAL_ 项',
    search = '搜索:',
    paginate = list(previous = '上页', `next` = '下页'),
    lengthMenu = '显示 _MENU_ 项结果'
  ),
  columnDefs = list(
    list(className = 'dt-center',targets = "_all"))# 设置表格中列居中排列 ,参数targets的值可以选定指定列,也可以全部显示
))


shinyServer(function(input, output, session) {
  ## 点击actionButton按钮才会更新数据,以及加载进度条
  datasetInput <- eventReactive(
    eventExpr = input$update,
    valueExpr = {
      # 加上进度条显示
      progress <-
        Progress$new(session,
                     min = 1,
                     max = 10
                     # ,style = "old"
                     )
      on.exit(progress$close())
      progress$set(message = '程序执行中')
      for (i in 1:5) {
        progress$set(value = i)
        Sys.sleep(0.5)
      }
      data <- iris
      for (i in 6:10) {
        progress$set(value = i)
        Sys.sleep(0.5)
      }
      data
    },
    ignoreNULL = T
  )
  
  output$tbl = DT::renderDataTable(
    ## 修改某一列为百分比格式
    expr={datatable(datasetInput())%>%formatPercentage(4, 2)} ,
    filter = 'top',
    # 筛选框的位置
    server = TRUE,
    # 不显示行名
    rownames = FALSE,
    # 添加表格标题
    caption = "表格的案例",
    options = list(autoWidth = TRUE )
  )
}
)

最终页面

这里写图片描述

这里写图片描述

REF

[1]https://datatables.net/reference/option/
[2]http://www.jianshu.com/p/90e290e80cd0

后记

参数太多了,我只是关注功能简单的实现,所以,就一知半解吧。参考文档参数设置实在想太多鸟,且都是英文,感兴趣&有时间可以多关注吧~

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值