首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rhandsontable如何限制最大。行数

rhandsontable如何限制最大。行数
EN

Stack Overflow用户
提问于 2017-07-21 19:47:13
回答 2查看 614关注 0票数 2

我在一个闪亮的应用程序中有一个rhandsontable,它有两行。它使用reactiveValues()在其中加载值。禁止通过拖动单元格来创建附加行

fillHandle = list(direction='vertical', autoInsertRow=FALSE))

用户应该被允许通过上下文菜单创建更多的行,但不能超过10行。我想用customOpts来做这件事,在nrow(table) == 10之前,用户可以添加新的行,但我不太擅长使用javascript。我试着用不同的方式来做(参见下面的代码),但是不能让它工作。另外,有没有另一种方法呢?

以下是我到目前为止的代码片段:

代码语言:javascript
复制
output$table <- renderRHandsontable({
  rhandsontable(data.frame(rv_values),
                fillHandle = list(direction='vertical', autoInsertRow=FALSE)) %>%
    hot_context_menu(allowRowEdit = TRUE, allowColEdit = FALSE)
})

我试着像这样手动更改allowRowEdit,但不太清楚如何让它工作:

代码语言:javascript
复制
observeEvent(input$table, {
  if(nrow(hot_to_r(input$table)) > 10)
#magic happens here

})

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-21 20:00:18

很抱歉我问得太快了。在花了2个小时将其发布在这里之后,我找到了一个简单的解决方案:将maxRows = 10添加到rhandsontable中,仅此而已。

代码语言:javascript
复制
 rhandsontable(data.frame(rv_data),
                fillHandle = list(direction='vertical', autoInsertRow=FALSE),
                maxRows = 10) %>%
    hot_context_menu(allowRowEdit = TRUE, allowColEdit = FALSE)
票数 2
EN

Stack Overflow用户

发布于 2017-07-21 19:56:59

这是你想要的吗?它不使用Javascript,但它让用户添加行,直到达到最大值:

代码语言:javascript
复制
max_rows = 5

require(shiny)
library(DT)

ui<-shinyUI(
  fluidPage(
    actionButton("action","Add row"),
    rHandsontableOutput("table")

  )
)

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

  rv_values <- reactiveVal()
  rv_values(head(mtcars,3))


  observeEvent(input$action,{
    if(!nrow(rv_values())==5)
    {
      rv_values(head(mtcars,nrow(rv_values())+1))    
    }
    else
    {
      showModal(modalDialog(
        title = "Important message",
        "Already reached maximum number of rows!"
      ))
    }
  }
  )

  output$table <- renderRHandsontable({
    rhandsontable(data.frame(rv_values()),
                  fillHandle = list(direction='vertical', autoInsertRow=FALSE)) %>%
      hot_context_menu(allowRowEdit = TRUE, allowColEdit = FALSE)
  })

}

shinyApp(ui,server)

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45236883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档