В настоящее время у меня есть приложение в R блестящий с использованием FluidPage. В этом приложении у меня есть интерактивная таблица данных, из которой я выбираю строки, которые вызывают модальное окно. Смотрите пример кода ниже.
# Load packages
library(tidyverse)
library(readxl)
library("openxlsx")
library(segmented)
library(grid)
library(gridExtra)
library(shiny)
library(shinyWidgets)
library(shinydashboard)
library(DT)
library(dplyr)
library(shinyBS)
library(shinythemes)
data_table <- data.frame(c(1))
names(data_table)[1] <- "a"
data_table$b <- 2
data_table$c <- 3
ui <- fluidPage(theme = shinytheme("lumen"),
mainPanel(
tabsetPanel(
tabPanel("Dashboard",
fluidRow(
box(DTOutput("data_table"), title = "Selectable Data Table", width = 12)
),
tags$head(tags$style(HTML('
.modal-lg {
width: 99%;
}
')))
)
)
)
)
server <- function(input, output, session) {
#DASHBOARD
output$data_table <- DT::renderDataTable({
DT::datatable(data_table, selection = 'single', escape = FALSE)
})
table_select <- reactive({
input$data_table_rows_selected
})
observeEvent(table_select(),{
showModal(modalDialog(
title = "I wish this window had a layout similar to fliudPage",
size = "l",
easyClose = TRUE,
)
)
})
}
shinyApp(ui = ui, server = server)
Однако в этом модальном окне я не могу иметь макет FluidPage, то есть ширину строки 12, с параметром liquidRows et c. Я хотел бы иметь больший контроль над компоновкой этого модального окна - предпочтительно те же элементы управления компоновкой, что и на liquidPage.
Единственное, что мне удалось сделать, - это создать модальное окно большего размера, чем обычно представлен с использованием следующего кода:
tags$head(tags$style(HTML('
.modal-lg {
width: 99%;
}
')))
Как я его вижу, у меня есть два варианта:
Вариант 1 - Найти способ, чтобы наблюдаемое событие открывало новый FluidPage вместо модального окна. ? или
Вариант 2 - каким-либо образом изменить модальное расположение окон ...
любая помощь будет принята с благодарностью!
Приветствия,
-Alex