相关疑难解决方法(0)

R - 当用户在不同的页面上时,闪亮的数据表 (renderDataTable) 重新加载到第一页并更新某个列值 (selectInput)

问题:每当用户位于数据表的不同页面并更新某个列值(通过 selectInput)时,R Shiny 数据表就会重新加载到第一页。

嗨堆栈用户,

在 R Shiny 中,我创建了一个包含数据表 (renderDataTable) 的 Shiny 应用程序,其中“状态”列的单元格值可以由其预期用户更新(通过 selectInput)。

我准备了以下代码的简化示例。

用户界面

require(shiny)
require(shinyjs)
require(data.table)
require(dplyr)
require(DT)

shinyUI(fluidPage(
  useShinyjs(),
  mainPanel("",         
            fluidRow(
              splitLayout(div(DT::dataTableOutput('my_table')), 
                          div(
                            shinyjs::hidden(
                            wellPanel(id="my_panel",
                                      h3("Update Status",align="center"),
                                      htmlOutput("my_status")
                                      )
                            )
                          )
              )
            )
  ) 
))
Run Code Online (Sandbox Code Playgroud)

服务器

#### DATA PREP AND FUNCTIONS ######################
id <- c('10001','10002','10003','10004','10005',
        '10006','10007','10008','10009','10010',
        '10011','10012','10013','10014','10015')
status <- c('OPEN','OPEN','CLOSED','CLOSED','OPEN',
            'OPEN','CLOSED','CLOSED','OPEN','CLOSED',
            'CLOSED','OPEN','OPEN','OPEN','CLOSED')
dt <- data.table(id=id,status=status)

render_my_table <- function(dt, sel) {
  if(missing(sel)) {
    sel = list(mode='single')
  }  else {
    sel = list(mode='single', selected = …
Run Code Online (Sandbox Code Playgroud)

r shiny data.table dt selectinput

5
推荐指数
1
解决办法
636
查看次数

标签 统计

data.table ×1

dt ×1

r ×1

selectinput ×1

shiny ×1