Я создал блестящее приложение, которое выглядит примерно так:
## Library
library(shiny)
library(shinydashboardPlus)
library(shinyjs)
library(DT)
data <- cbind(
seq(from = 1, to = 30, by = 1),
sample(seq(from = 100, to = 300, by = 10), size = 30, replace = TRUE),
sample(seq(from = 1, to = 100, by = 9), size = 30, replace = TRUE),
sample(seq(from = 50, to = 60, by = 2), size = 30, replace = TRUE),
sample(seq(from = 100, to = 130, by = 1), size = 30, replace = TRUE)
) %>%
as.data.frame()
names(data) <- c("Colimn 1", "Colimn 2", "Colimn 3", "Colimn 4", "Colimn 5")
## UI
ui <- dashboardPagePlus(
dashboardHeaderPlus(
enable_rightsidebar = TRUE,
rightSidebarIcon = "angle-left"
),
dashboardSidebar(),
dashboardBody(dataTableOutput("dataTable")),
rightSidebar()
)
## Server
server <- function(input, output) {
output$dataTable <- renderDataTable({
datatable(data,
rownames= FALSE,
selection = "single",
escape = FALSE,
## Get the name of the row on click
callback = JS("table.on('click.dt', 'tr',
function() {
Shiny.onInputChange('rows', table.rows(this).data().toArray());
});")
)
})
observeEvent(!is.null(input$rows),
{
????
})
}
shinyApp(ui, server)
Мне бы хотелось, чтобы при нажатии пользователем строки таблицы данных правая боковая панель расширялась с более подробной информациейоколо этой строки.
Когда пользователь щелкает по любой строке таблицы данных, боковая панель должна открываться, если пользователь нажимает на любую другую строку, она должна оставаться открытой.Она должна рушиться только тогда, когда нажата кнопка сверху (она уже есть), чтобы свернуть ее.
Я попытался поиграть shinyjs::removeClass
, но мне не удалось заставить ее работать.