问题:每当用户位于数据表的不同页面并更新某个列值(通过 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)