2014-11-12 7 views
6

Ich versuche, eine glänzende App zu entwickeln, die die Datentabelle FixedColumns Plugin verwendet:R: Wie initialisierst du Datenobjekte FixedColumns Javascript in Shiny?

https://datatables.net/extensions/fixedcolumns/

Die datasest ich rund 100 Spalten verwende haben und ich mag die ersten fünf Spalten fixieren und dem Benutzer zu ermöglichen, Scrolle durch den Rest. Aus den Beispielen sieht es aus wie ich dieses Javascript verwenden bräuchten:

https://datatables.net/release-datatables/extensions/FixedColumns/examples/two_columns.html

$(document).ready(function() { 
    var table = $('#example').DataTable({ 
     scrollY:  "300px", 
     scrollX:  true, 
     scrollCollapse: true, 
     paging:   false 
    }); 
    new $.fn.dataTable.FixedColumns(table, { 
     leftColumns: 2 
    }); 
}); 

Ich weiß nicht, javascript aber in der Vergangenheit konnte ich mich() verwenden JavaScript-Optionen einfügen . Dieses Mal sieht es so aus, als müsste ich etwas anderes machen. Ich habe unter dem Code versucht, und die Meldung: „Fehler:..‚Optionen‘muss eine benannte Liste sein‘

library(shiny) 
library(ggplot2) 
data(diamonds) 
hw <- diamonds 

runApp(
    list(ui=(
    fluidPage(
     tabsetPanel(
     id = 'dataset', 
     tabPanel('hw', dataTableOutput('mytable1')) 
    ))), 

    server = (function(input, output, session) { 
     output$mytable1 <- renderDataTable(
     head(hw, 50), 
     options = list(scrollY = '300px', 
         scrollX = TRUE, 
         scrollCollapse = TRUE, 
         paging = FALSE, 

         I("new $.fn.dataTable.FixedColumns(table, { 
         leftColumns: 5 
         });") 
         )) 


    }) 

)) 
+0

Ich habe die gleiche Problem/Frage habe ich keine klaren gefunden Erklärung, wie man das/Beispiel bisher überall macht. – numbercruncher

Antwort

0
list(tags$head(tags$script('type = "text/javascript"', ' 
     $(document).ready(function() { 
      var table = $("#example").DataTable({ 
       "scrollY": "300px", 
       "scrollX": "100%", 
       "scrollCollapse": true, 
       "paging": false 
      }); 
      new $.fn.dataTable.FixedColumns(table); 
     }); 
')))