"rhandsontable"을 기반으로하는 테이블을 업데이트 할 때 유효성 검사 체계를 만들고 싶습니다. 저는 두 개의 컬럼을 가지고 있습니다 : Min과 Max 그리고 Max 컬럼의 셀이 업데이트 될 때, 같은 컬럼에서 이전 컬럼 Min보다 큰 값으로 업데이트가 가능하거나 그 반대의 경우도 가능합니다. 어쩌면 hot_cols 렌더러를 사용하고 0보다 큰 뺄셈 등으로 유효성을 검사하는 것이 가능할 수도 있습니다. 그러나 이것이 가능하다고 생각하지만 일반적으로 "rhandsontable"또는 "hansontable"에 익숙하지는 않습니다. 감사.rhandsontable R 패키지를 사용하여 셀의 수치 검증
장난감 예 :
library(shiny)
library(rhandsontable)
if (interactive()) {
ui <- fluidPage(
rHandsontableOutput('table'),
tableOutput('table1')
)
server <- function(input, output,session) {
values <- reactiveValues(df=data.frame(Parameter=c('A','B','C'),Min=c(10,20,30),Max=c(20,30,40)))
observe({
if(!is.null(input$table)){
values$df <- hot_to_r(input$table)
output$table1<-renderTable(values$df)
}
})
output$table<-renderRHandsontable({
rhandsontable(values$df)%>%
hot_col("Parameter", readOnly = TRUE)%>%
hot_validate_numeric(col='Min', min = 1, max = 50,allowInvalid = FALSE)%>%
hot_validate_numeric(col='Max', min = 1, max = 50,allowInvalid = FALSE)
})
}
shinyApp(ui, server)
}
서버 측에서 이러한 유형의 유효성이 검증 된 것으로 보았습니까? 입력 한 내용을 서버에 가져 와서 분석 한 다음 확인 여부를 결정할 수 있습니다. 클라이언트 측은 일반적인 데이터 유효성 검사 (범위 : num vs char 등)에 적합합니다. 서버 케이스는 당신이 묘사하는 것과 같은 더 도전적인 것들을위한 올바른 것 같습니다. – Enzo
안녕하세요 엔조, 나는 사용자가 언제든지 수정할 수있는 초기 값으로 "폼"으로 rhandsontable을 사용하고 있습니다. 다른 위젯을 사용하여 데이터를 입력 할 수 있다는 것을 알고 있습니다. textInput하지만 많은 매개 변수가 있고 "즉시"생성되는 경우이 옵션을 사용하면 값을 쉽게 입력 할 수 있지만 rhandsontable에서는 열로 형식을 제어 할 수 있다고 생각했습니다. (예 : min-max by column)하지만 두 열과 관련된 조건을 포함시키는 방법을 예로 들지 않습니다. – Uli
min 20을 입력하면 최대 10은 분명히 오류입니다. 그래서, 일부 자바 스크립트를 사용하여 일부 값을 유효화하고 계속하거나 오류 메시지를 표시해야하는 함수를 사용합니다. 항상 서버 측에서 생각하고 있습니다. 렌더러 함수를 사용하여 고정 된 값보다 작거나 큰 경우 셀의 색상을 변경할 수 있음을 알았지 만이 동작을 두 개의 열로 확장하는 방법을 알지 못합니다. 이것은 당신에게 이해가 되니? – Uli