#shiny #datatables #dt
#блестящий #таблицы данных #dt
Вопрос:
У меня есть таблица данных, в которой нижний колонтитул содержит текст «Предыдущий / следующий». В настоящее время он перекрывает текст «Отображение 1 из 15». Есть ли способ переместить это, чтобы я не получал избыточный круг?
Вот картинка, а также код. Я не очень знаком с html / java script, поэтому, если бы вы могли предоставить ответ, объясняющий, почему вы используете конкретный код, который был бы очень признателен
library(shiny)
library(bs4Dash)
library(DT)
x = data.frame(one = rep("Hey how is everyones day? I need some help on this shiny application and learn how to use some of the features on datatable.", 10),
two = rep("this is the second column of text. ", 10),
three = rep("this is the third column of text", 10))
ui = bs4DashPage(
old_school = FALSE,
sidebar_min = TRUE,
sidebar_collapsed = FALSE,
controlbar_collapsed = FALSE,
controlbar_overlay = TRUE,
title = "Basic Dashboard",
navbar = bs4DashNavbar(),
sidebar = bs4DashSidebar(),
controlbar = bs4DashControlbar(),
footer = bs4DashFooter(),
body = bs4DashBody(
DTOutput("table")
)
)
server = function(input, output) {
output$table = renderDataTable({
datatable(x, rownames = F, style = "bootstrap", extensions = 'Responsive', options = list(
#dom = 't'
))
})
}
shinyApp(ui, server)
Когда я запускаю тот же код на shiny dashboard, он получается таким, каким я хотел бы, чтобы он выглядел. Поэтому я считаю, что это как-то связано с таблицей стилей Bs4Dash. Ниже показано, как это выглядит с помощью shinydashboard
Комментарии:
1. Пожалуйста, поделитесь примером.
2. @ismirsehregal я обновил свой пост примером, а также тем, как я хотел бы, чтобы он выглядел
3. Привет. Давайте отлаживать вместе, и я опубликую ответ, когда мы найдем проблему. Исправит ли это удаление
options
? Поскольку назначение вручную#dom = 't'
, возможно, нарушает макет. Не могли бы вы подробнее рассказать о том, почему вы добавили эту опцию?4. Привет @IslamElshobokshy проблема не в меню опций. Тем не менее, я кое-что выяснил. Это не работает только при запуске. Мой DT отображает таблицу данных с информацией о конкретном складе. Как только вы измените запас (снова отобразите таблицу), проблема будет решена.
5. @JordanWrong Я вижу, это важная информация. В этом случае попробуйте вызвать функцию рисования после рендеринга. Я опубликую ответ.
Ответ №1:
Вам нужно перерисовать свою таблицу после инициализации.
$('#tableIdHere').DataTable().draw();
Комментарии:
1. Эй, Ислам, просто пытаюсь понять это, прежде чем убегу. Откуда берется ввод $ refresh?
2. @JordanWrong Я не знаком с Shiny так, как с таблицами данных. Вы можете прочитать здесь о том, как
observeEvent
работает. Что касается DT, когда таблица ложно инициализирована, вы всегда вызываете.draw()
, чтобы изменить эту таблицу.3. спасибо, что перезвонили мне. Я попытался добавить вышеуказанное, но не смог заставить его работать. Я не слишком уверен, зачем нам добавлять observeEvent()
4. @JordanWrong как я уже сказал, я не знаком с shiny, но я знаком с DT. Я не уверен, где вы должны добавить в shiny перерисовку, но это должно быть после первого и начального рендеринга DT.
Ответ №2:
Вы можете попробовать это, надеюсь, это решит вашу проблему.
library(shiny)
library(bs4Dash)
library(DT)
x = data.frame(one = rep("Hey how is everyones day? I need some help on this shiny application and learn how to use some of the features on datatable.", 10),
two = rep("this is the second column of text. ", 10),
three = rep("this is the third column of text", 10))
ui = bs4DashPage(
old_school = FALSE,
sidebar_min = TRUE,
sidebar_collapsed = FALSE,
controlbar_collapsed = FALSE,
controlbar_overlay = TRUE,
title = "Basic Dashboard",
navbar = bs4DashNavbar(),
#sidebar = bs4DashSidebar(),
controlbar = bs4DashControlbar(),
footer = bs4DashFooter(),
body = bs4DashBody(
DTOutput("table")
)
)
server = function(input, output) {
output$table = renderDataTable({
datatable(x, rownames = F, extensions = 'Responsive', options = list(
#dom = 't'
))
})
}
shinyApp(ui, server)
Я удалил только style = "bootstrap"
из renderDataTable
и которые служат перпендикулярно
Комментарии:
1. эй, Гураб, я бы хотел сохранить функцию начальной загрузки
Ответ №3:
Ваш CSS перезаписан другим CSS по умолчанию. Пожалуйста, проверьте, имеют ли ваши классы похожие имена или конфликтуют друг с другом.
Комментарии:
1. Нет, это таблицы данных, которые не могут корректно отображаться при инициализации.