bekam ich eine RStudio Shiny Server-Seite mit DataTables- und ich bekam TableTools und ColReorder im Beispiel unten zu arbeiten, aber ColVis (Show/hide columns
Taste) nicht in http://datatables.net/extensions/colvis/ in der gleichen Weise wie das Beispiel verhalten:R glänzend Tables ColVis Verhalten
Wenn Sie auf die Schaltfläche Show/hide columns
klicken, vermischt sich die Liste mit den Werten in der darunter liegenden Tabelle. Die Liste kann nicht durch erneutes Klicken auf die Schaltfläche oder durch Klicken auf eine andere Stelle auf der Seite ausgeblendet werden (auch hier verhält sich das Beispiel auf der Seite "Datenblätter") korrekt).
Auch ich bin verwirrt über sDom
mit den verschiedenen Elementen in der Tabelle zu bestellen. Ich möchte die Show/hide columns
Taste oben rechts statt oben links haben. Ich bin mir auch nicht sicher, wie man die verschiedenen Elemente in der sDom
der Tabelle bestellt, so dass nach dem Ändern der Reihenfolge der Spalten, das Speichern in CSV/Excel oder das Ausblenden einer Spalte mir das neue Tabellenlayout anstelle des ursprünglichen geben.
Irgendwelche Ideen?
ui.R
shinyUI(pageWithSidebar(
h1('Diamonds DataTable with TableTools'),
tagList(
singleton(tags$head(tags$script(src='//cdnjs.cloudflare.com/ajax/libs/datatables/1.9.4/jquery.dataTables.min.js',type='text/javascript'))),
singleton(tags$head(tags$script(src='//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/js/TableTools.min.js',type='text/javascript'))),
singleton(tags$head(tags$script(src='//cdn.datatables.net/colreorder/1.1.1/js/dataTables.colReorder.min.js',type='text/javascript'))),
singleton(tags$head(tags$script(src='//cdn.datatables.net/colvis/1.1.0/js/dataTables.colVis.min.js',type='text/javascript'))),
singleton(tags$head(tags$script(src='//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/js/ZeroClipboard.min.js',type='text/javascript'))),
singleton(tags$head(tags$link(href='//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/css/TableTools.min.css',rel='stylesheet',type='text/css'))),
singleton(tags$script(HTML("if (window.innerHeight < 400) alert('Screen too small');")))
),
dataTableOutput("mytable")
)
)
server.R
shinyServer(function(input, output, session) {
output$mytable = renderDataTable({
diamonds[,1:6]
}, options = list(
"sDom" = 'RMDCT<"clear">lfrtip',
"oTableTools" = list(
"sSwfPath" = "//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/swf/copy_csv_xls.swf",
"aButtons" = list(
"copy",
"print",
list("sExtends" = "collection",
"sButtonText" = "Save",
"aButtons" = c("csv","xls")
)
)
)
)
)
})
#
Außerdem gibt es ein Problem mit Spaltensortierung und Spalte Neuordnungs: wenn man Sorten dann neu ordnet Spalten und wieder sortiert Die Spaltenüberschriften werden umgedreht. Zum Beispiel, sortiere nach Spaltentiefe, dann spalte Spalte eins nach links, dann klicke erneut auf Header, um zu sortieren, jetzt haben wir Headertiefe mit Inhalten aus der falschen Spalte. Schnappschuss sehen:
Sie nur für diese Bibliothek benötigen Sie die 'sDom' Option . Dann sollte das Widget korrekt angezeigt werden. Das Widget ändert jedoch Objekte im DOM, so dass Sie wahrscheinlich Aufrufe von 'Shiny.unbindAll()' und 'Shiny.bindAll()' integrieren müssen, siehe https://groups.google.com/forum/#!msg/shiny- discuss/IE6aQfKXd1I/M_IpblUUG9AJ – jdharrison
wo sollten diese Aufrufe 'Shiny.unbindAll()' und 'Shiny.bindAll()' relativ zur Tabelle gemacht werden? – 719016