Как решить проблему блестящего несовпадения данных? - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь

  • сделать все столбцы в таблице данных одинаковой ширины
  • выровнять таблицу данных (как заголовок, так и его содержимое) влево
  • включите горизонтальную прокрутку, как только она достигнет ширины главной панели

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

Пример:

library(shiny)
library(dplyr)
library(DT)

ui <- fluidPage(

   titlePanel("Test Example"), 

   mainPanel(
     width = 10, 
     dataTableOutput("cars.table")
   )
)

server <- function(input, output) {
   output$cars.table <- renderDataTable({
      t(cars[1:10, ]) %>% 
       datatable(class = "compact small", 
                 options = list(columnDefs = list(list(width = "25px", targets = "_all")), scrollX = TRUE, autoWidth = TRUE, 
                                paging = FALSE, ordering = FALSE, searching = FALSE))
   })
}

shinyApp(ui = ui, server = server)

Обновление 2019/05/03:

Я полагаю В этом вопросе говорится, что такая проблема была вызвана autoWidth = TRUE, но по этому вопросу нет решения, и если мы хотимотрегулируйте ширину столбца, мы также не можем удалить autoWidth = TRUE.

1 Ответ

0 голосов
/ 03 мая 2019

Для выравнивания вы можете использовать className = dt-left.

И я думаю, что аргумент `fillContainer = T 'выполняет работу по прокрутке.

library(shiny)
library(dplyr)
library(DT)

ui <- fluidPage(

  titlePanel("Test Example"), 

  mainPanel(
    width = 10, 
    dataTableOutput("cars.table")
  )
)

server <- function(input, output) {
  output$cars.table <- renderDataTable({
    t(cars[1:10, ]) %>% 
      datatable(class = "compact small", fillContainer = T, 
                options = list(columnDefs = list(list(className = 'dt-left', width = "25px", targets = "_all")), scrollX = TRUE, 
                               paging = FALSE, ordering = FALSE, searching = FALSE))
  })
}

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