2016-02-25 3 views
9

Ich möchte 'globale Suche' Option aus meiner Anwendung entfernen, aber 'Spaltensuche' Option verlassen. Irgendwelche Ideen? Ich habe verschiedene Parameter wie searching=FALSE, filtering='none' ausprobiert ... Nichts davon funktioniert ordnungsgemäß.Entfernen Sie die 'Suche' -Option, aber lassen Sie die 'Suchspalten' -Option

Mein Code:

server.R:

library("shiny") 
library("DT") 

data(iris) 

shinyServer(function(input, output) { 

    output$tabelka <- DT::renderDataTable({ 

     datatable(iris, filter="top", selection="multiple", escape=FALSE) 

    }) 

}) 

ui.R

library("shiny") 
library("DT") 

shinyUI(fluidPage(

    DT::dataTableOutput("tabelka") 

)) 

Und Bild, das mein Problem zu verstehen, hilft:

enter image description here

+0

Werfen Sie einen Blick [hier] (http://studio.github.io/DT/), Abschnitt 2.5. –

+0

@ danas.zuokas, ich habe dieses Handbuch gelesen, aber es hat mir nicht geholfen. Könnten Sie mir mehr spzifischen Hinweis geben? – Marta

+0

Nun, ich habe nicht die Antwort selbst, dachte, es würde dich in die richtige Richtung führen. Was ich verstehe ist, dass Sie eine Tabelle erstellen können, wie Sie benutzerdefinierte Container verwenden möchten. Ich schlage vor, das Beispiel zu reproduzieren und an Ihre Bedürfnisse anzupassen. –

Antwort

16

DT-Optionen müssen als Liste übergeben werden. Durch die Verwendung der Initialisierungsvariable sDom kann außerdem angegeben werden, wo in den DOM-Steuerelementen platziert wird. Der Standard-Setup sieht wie folgt aus:

datatable(iris, filter="top", selection="multiple", escape=FALSE, 
     options = list(sDom = '<"top">flrt<"bottom">ip')) 

Die Syntax ist ein wenig schrullig, aber im Grunde der oben sagt, dass f, l, r und t-Optionen sind mit den i und p-Optionen in der oberen div platziert werden in das untere div. Weitere Informationen finden Sie in der Dokumentation unter http://legacy.datatables.net/usage/options.

Wie auch immer, "f" ist die "Filtering input" -Option (d. H. Die Suchoption) und durch Verschieben von "f" zu einem anderen Div oder Weglassen können wir uns bewegen oder die Suchleiste deaktivieren. Eine Lösung für Ihr Problem könnte wie folgt aussehen:

datatable(iris, filter="top", selection="multiple", escape=FALSE, 
     options = list(sDom = '<"top">lrt<"bottom">ip')) 
+0

Ja, ich habe es versucht. 'Globale Suche' verschwindet, aber 'Spaltensuche' funktioniert auch nicht ... – Marta

+0

Seltsam! Das obige funktioniert wie erwartet für mich. Welche Versionen von R, shiny und DT liegst du? Vielleicht funktioniert die dev-Version besser: devtools :: install_github ('rstudio/DT') – Pewi

+0

Es gibt Filterboxen für Spalten, aber sie funktionieren nicht (versuchen Sie es, wenn es in Ihrer Version gleich ist). Mein DT ist ziemlich neu, denke ich. – Marta

8

Etwas einfache Syntax, für alle andere noch auf der Suche:

datatable(head(iris), options = list(dom = 't'), filter = list(position = "top")) 

Andere Optionen. Zur Anzeige nur Tabelle, Verwendung dom = 't':

datatable(head(iris), options = list(dom = 't')) 

zu Tisch und Filter (Suchfeld) angezeigt werden, die Standardeinstellung:

datatable(head(iris), options = list(dom = 'ft')) 

Quelle:

https://rstudio.github.io/DT/options.html

+5

Dadurch werden möglicherweise mehr Funktionen als gewünscht deaktiviert, z. B. die Seitentasten. – wibeasley

0
datatable(iris, filter="top", selection="multiple", escape=FALSE, 
options = list(searching = FALSE)) 
+1

Vielen Dank für dieses Code-Snippet, das eine begrenzte, sofortige Hilfe bieten kann. Eine [richtige Erklärung] (https://meta.stackexchange.com/q/114762) würde ihren langfristigen Wert erheblich verbessern, indem sie zeigt, warum dies eine gute Lösung für das Problem ist und es für zukünftige Leser mit anderen nützlicher machen würde , ähnliche Fragen. Bitte [bearbeiten] (https://meta.stackoverflow.com/posts/360251/edit) Ihre Antwort, um einige Erklärungen hinzuzufügen, einschließlich der Annahmen, die Sie getroffen haben. [ref] (https://meta.stackoverflow.com/a/360251/8371915) – user8371915

Verwandte Themen