2014-12-24 13 views
14

Tôi đang chạy một ứng dụng web R Shiny. Tôi đã sử dụng datatables để hiển thị dữ liệu. Nhưng tôi muốn chỉnh sửa nội tuyến ô của các bảng. Tôi không thể làm điều đó. Bất kỳ ai có thể hướng dẫn tôi không?Làm thế nào để thực hiện chỉnh sửa nội tuyến trên datatables trong R Shiny

Đây là mã của tôi trong

# 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 
)) 

Tôi muốn chỉnh sửa tế bào. Dưới đây là liên kết tôi muốn làm ảnh hưởng:
https://editor.datatables.net/examples/inline-editing/simple.html

tôi cần một cái gì đó để thêm vào danh sách tùy chọn có thể nhưng tôi không thể tìm thấy một trong những quyền.

+0

Đây là một trong thú thực, tôi muốn nghe từ người khác làm thế nào họ sẽ đi về nó. Nhưng bây giờ tôi sẽ đi và sử dụng thư viện shinyBS và các phương thức của nó thông qua bsModal để liên kết các phụ thuộc sẽ bật lên và làm những gì bạn muốn ... –

+0

Có một nguyên mẫu của trình soạn thảo cho DT [ở đây] (https: // github .com/rstudio/DT/issue/28) – dracodoc

Trả lời

8

Ngoài mẫu thử nghiệm DT được đề xuất bởi @dracodoc, một tùy chọn khác đang sử dụng rhandsontable package.

EDIT: Theo ý kiến ​​của @hveig và @Munawir, một mảnh làm việc mã ví dụ hiện nay gắn liền (chuyển thể từ 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") 
    }) 
    }) 
) 
Các vấn đề liên quan