如何解决如何将 'afterColumnResize' 事件与 'rhandsontable' 一起使用?
JavaScript 库Handsontable 有一个事件 afterColumnResize,在手动调整列大小时触发。如何将它与 Shiny 中的 'rhandsontable' 包一起使用?
解决方法
方法如下:
library(shiny)
library(rhandsontable)
library(htmlwidgets)
jsCode <- c(
"function(el,x) {"," Handsontable.hooks.add('afterColumnResize',function(index,size){"," Shiny.setInputValue('newsize',{index: index+1,size: size});"," });","}"
)
ui <- fluidPage(
rHandsontableOutput("dataTable"),br(),verbatimTextOutput("sizeinfo")
)
server <- function(input,output,session) {
df = data.frame(
company = c('a','b','c','d'),bond = c(0.2,1,0.3,0),equity = c(0.7,0.5,1),cash = c(0.1,0.2,stringsAsFactors = FALSE
)
output$dataTable <- renderRHandsontable({
rhandsontable(df,manualColumnResize = TRUE,manualRowResize = TRUE) %>%
onRender(jsCode)
})
output$sizeinfo <- renderPrint({
req(input$newsize)
sprintf(
"Column %d has new size %dpx.",input$newsize$index,input$newsize$size
)
})
}
shinyApp(ui,server)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。