Скрыть фильтры в Shiny DT DataTable - PullRequest
0 голосов
/ 01 июля 2018

В моем блестящем приложении я создаю таблицу данных с использованием пакета DT. У меня включены фильтры столбцов, однако я хочу скрыть строку блоков фильтров. У меня есть отдельные блестящие виджеты вне таблицы данных, которые будут действовать как фильтры и передавать их в таблицу данных с помощью параметра searchCols. Отключение фильтров столбцов может скрыть строку блоков фильтров, но тогда опция searchCols не будет работать.

Когда я запускаю приложение и проверяю элементы, я вижу, что строка, которую я хочу удалить, называется

... . Если я щелкну по нему правой кнопкой мыши и нажму «Удалить элемент», строка исчезнет, ​​и таблица данных будет выглядеть так, как я хочу, с внешними фильтрами, работающими как задумано. Я также могу сделать это, добавив «display: none» в element.style css. У меня вопрос, как я могу сказать приложению удалить эту строку при визуализации таблицы данных?

Я не уверен, какой воспроизводимый код я мог бы предоставить, но вот несколько скриншотов, чтобы прояснить, что я хочу сделать.

Я хочу удалить все поля фильтров и строку, в которой они находятся, чтобы данные находились прямо под заголовками столбцов, как если бы фильтры не были включены. enter image description here

Если я проверю приложение и удалю выделенный элемент или добавлю «display: none», строка будет скрыта. Как я могу сделать это автоматически при обработке данных? enter image description here

1 Ответ

0 голосов
/ 01 июля 2018

Я не знаю, будет ли это работать с вашими виджетами, но вы можете попробовать это установить свойство display в таблице стилей, используя селектор id и дочерний селектор:

library(shiny)
library(DT)

ui <- fluidPage(
  tags$style("#mydatatable thead > tr:nth-child(2) {display:none;}"),
  mainPanel(
    dataTableOutput("mydatatable")
  )
)

server <- function(input, output) {

  output$mydatatable <- DT::renderDataTable(
    datatable(iris, filter = 'top', options = list(
              pageLength = 5, autoWidth = TRUE)
    )
  )

}

shinyApp(ui = ui, server = server)
...