gpt4 book ai didi

r - 在 rhandsontable 中禁用列编辑?

转载 作者:行者123 更新时间:2023-12-04 21:43:49 26 4
gpt4 key购买 nike

假设我有以下 Shiny 的应用程序:

library(shiny)
library(rhandsontable)

ui <- shinyUI(fluidPage(
titlePanel("Handsontable"),
sidebarLayout(
sidebarPanel(
helpText("Handsontable demo output. Column add/delete does work ",
"for tables with defined column properties, including type."),
radioButtons("useType", "Use Data Types", c("TRUE", "FALSE"))
),
mainPanel(
rHandsontableOutput("hot", width = 350)
)
)
))

server <- shinyServer(function(input, output, session) {
values = reactiveValues()

data = reactive({
if (!is.null(input$hot)) {
DF = hot_to_r(input$hot)
} else {
if (is.null(values[["DF"]]))
DF = data.frame(val = 1:10, bool = TRUE, nm = LETTERS[1:10],
dt = seq(from = Sys.Date(), by = "days", length.out = 10),
stringsAsFactors = F)
else
DF = values[["DF"]]
}


values[["DF"]] = DF
DF
})

output$hot <- renderRHandsontable({
DF = data()
if (!is.null(DF))
rhandsontable(DF, useTypes = as.logical(input$useType), stretchH = "all")
})
})

# Run the application
shinyApp(ui = ui, server = server)

如何禁用前两列的编辑?

最佳答案

可以将整个表和单个列设置为只读以防止用户进行更改。( http://jrowen.github.io/rhandsontable/#read-only )

library(shiny)
library(rhandsontable)

ui <- shinyUI(fluidPage(
titlePanel("Handsontable"),
sidebarLayout(
sidebarPanel(
helpText("Handsontable demo output. Column add/delete does work ",
"for tables with defined column properties, including type."),
radioButtons("useType", "Use Data Types", c("TRUE", "FALSE"))
),
mainPanel(
rHandsontableOutput("hot", width = 350)
)
)
))

server <- shinyServer(function(input, output, session) {
values = reactiveValues()

data = reactive({
if (!is.null(input$hot)) {
DF = hot_to_r(input$hot)
} else {
if (is.null(values[["DF"]]))
DF = data.frame(val = 1:10, bool = TRUE, nm = LETTERS[1:10],
dt = seq(from = Sys.Date(), by = "days", length.out = 10),
stringsAsFactors = F)
else
DF = values[["DF"]]
}


values[["DF"]] = DF
DF
})

output$hot <- renderRHandsontable({
DF = data()
if (!is.null(DF))
rhandsontable(DF, useTypes = as.logical(input$useType), stretchH = "all") %>%
hot_col("val", readOnly = TRUE) %>%
hot_col("bool",readOnly = TRUE )
})
})

# Run the application
shinyApp(ui = ui, server = server)

关于r - 在 rhandsontable 中禁用列编辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37436556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com