2014-12-24 8 views
14

È in esecuzione un'applicazione Web R Shiny. Ho usato i datatables per mostrare i dati. Ma voglio la modifica in linea della cella dei tavoli. Non sono in grado di farlo. Qualcuno può guidarmi?Come implementare la modifica in linea sui datatables in R Shiny

Ecco il mio codice in

# UI.R 

fluidRow(
     column(4,dataTableOutput("numericalBin")), 
     column(8,h1("numericalBin_Chart"))) 
) 

# Server.R 

output$numericalBin <- renderDataTable({ 
    mtcars 
    },options = list( 
    lengthChange=FALSE, 
    searching=FALSE, 
    autoWidth=TRUE, 
    paging=FALSE 
)) 

Voglio modificare cellulare. Ecco il link che voglio fare l'effetto:
https://editor.datatables.net/examples/inline-editing/simple.html

ho bisogno di qualcosa da aggiungere nella lista di opzione forse, ma non riesco a trovare quella giusta.

+0

Questo è interessante anzi, vorrebbe sentire da altri come lo farebbero. Ma per ora andrei a usare la libreria shinyBS e le sue modal tramite bsModal per collegare le dipendenze che sarebbero saltate fuori e fare quello che vuoi ... –

+0

C'è un prototipo di editor per DT [qui] (https: // github .com/rstudio/DT/temi/28) – dracodoc

risposta

8

Oltre al prototipo DT proposto da @dracodoc, un'altra opzione utilizza rhandsontable package.

EDIT: secondo le affermazioni del @hveig e @Munawir, un pezzo di lavoro Codice esempio è ora collegata (adattato da rhandome examples page):

library(shiny) 
library(rhandsontable) 

shinyApp(
    shinyUI(
    fluidRow(
     rHandsontableOutput("hot") 
    )), 

    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 = mtcars 
     else 
      DF = values[["DF"]] 
     } 


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

    output$hot <- renderRHandsontable({ 
     DF = data() 
     if (!is.null(DF)) 
     rhandsontable(DF, stretchH = "all") 
    }) 
    }) 
) 
Problemi correlati