2015-06-10 15 views
9

Mit R glänzend & DT-Paket, ich erstellen bestimmte Tabellen. Die Anzahl der Spalten variiert je nach Benutzereingabe & ist nicht festgelegt. Ich habe das folgende Codefragment aufgenommen, um eine horizontale Bildlaufleiste einzubeziehen, sodass der Benutzer bei einer großen Anzahl von Spalten durch die Spalten scrollen kann, die nicht direkt sichtbar sind.So machen Sie die horizontale Bildlaufleiste sichtbar in DT :: datable

server.R:

output$results <- DT::renderDataTable({ 
    DT::datatable(data = datasetInput(), 
        options = list(scrollX = TRUE,...) 
       ) 
    }) 
<code reduced for brevity> 

den obigen Code verwendet, ist die horizontale Scrollbar zunächst nicht sichtbar, aber erscheint, wenn ich auf einer Zeile klicken und Pfeil nach rechts auf meiner Tastatur. Gibt es irgendeine Möglichkeit, dass die Bildlaufleiste sichtbar wird, sobald der Tisch hochgefahren ist, egal wie viele Spalten ich habe, und ich kann die Bildlaufleiste mit dem Mauszeiger ziehen?

aktualisieren:

habe ich versucht, den Code in der Antwort unten, und das ist, was ich sehe - keine horizontale Bildlaufleiste.

enter image description here

+1

Bitte immer Ihre Session liefern(). Du hast es nicht gesagt, aber ich vermute, dass du Mac OS X benutzt hast. Wenn das der Fall ist, gibt es nichts Überraschendes. Das ist nur das Standardverhalten von Mac - Bildlaufleisten sind standardmäßig ausgeblendet, bis Sie mit dem Bildlauf beginnen. –

+0

Danke Yihui. Richtig, ich benutze MacOSX. Ich werde sicherstellen, dass ich meine sessionInfo() in der Zukunft bereitstellen werde. –

+0

Ich benutze Mac nicht oft, aber ich denke, es könnte eine Möglichkeit geben, die Scrollbar immer sichtbar zu machen. Sehen Sie, wenn Sie Glück mit Google haben ... –

Antwort

14

Ich glaube nicht, man kann (oder sollte) leicht eine Scrollbar erzwingen, wenn Sie eine nicht brauchen, aber der obige Code funktioniert gut für mich, es zeigt eine Scrollbar, wenn die Seite initialisiert. Vielleicht liegt das Problem bei den Daten oder etwas anderem.

Hier ist ein minimales Beispiel, das eine horizontale Scrollbar hat dies auf Seite Last

runApp(shinyApp(
    ui = fluidPage(
    DT::dataTableOutput("results", width = 300) 
), 
    server = function(input, output, session) { 
    output$results <- DT::renderDataTable(
     mtcars, 
     options = list(scrollX = TRUE) 
    ) 
    } 
)) 
+0

Ich meine die Bildlaufleiste funktioniert in meinem Code, aber es ist nicht sichtbar, bis ich auf eine Zeile klicke & den rechten Pfeil drücke. Es ist nicht sichtbar, also kann ich es nicht mit meinem Mauszeiger ziehen. –

+0

Ich weiß nicht, wie viel oder ob es überhaupt zählt, aber ich verwende Optionen innerhalb von 'DT :: datatable' und verwende sie innerhalb von' DT :: renderDataTable'. Ich vermute, das ist nicht das Problem. Aber ich kann die Scrollbar immer noch nicht sehen, ohne meine Tastatur zu benutzen und kann meine Maus definitiv nicht zum Scrollen benutzen. –

+0

Sie haben recht, die Optionen in 'renderDataTable' vs in' datatable' machen keinen Unterschied. Wie gesagt, ich vermute, dass das Problem nicht bei der Datentabelle liegt, sondern bei Ihrem Dataset oder etwas anderem an Ihrem Code, das dies verursacht, weil ein einfaches einfaches Beispiel wie das, das ich gezeigt habe, funktioniert. –

1

Versuchen:

DT::datatable(sta, options = list(
    pageLength=50, scrollX='400px'), filter = 'top') 
Verwandte Themen