Автоматическое открытие левой боковой панели ShinyDashBoard при щелчке строки таблицы данных DT - PullRequest
0 голосов
/ 07 мая 2019

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

Я рассмотрел: вкладка специфичнабоковая панель в shinydashboard

Откройте новую вкладку в строке таблицы, нажмите

Автоматическое всплывающее окно правой боковой панели при нажатии на элемент MenuItem в shinydashboardPlus

Но не удалось соединить связывание и открепление при щелчке строки таблицы данных.

ui.R

library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(shinythemes)
library(leaflet)
library(DT)
library(shinyjs)
ui <- dashboardPage(
    dashboardHeader(title = "Basic List"),

    dashboardSidebar(div(id = 'tab1_sidebar',
                         sidebarMenu(
                             textInput("text", "Text input:")
                         ))),
    dashboardBody(useShinyjs(),
                  theme = shinytheme("spacelab"),
                  fluidRow(
                      HTML("<div class='col-sm-12' style='min-width: 400px !important;'>"),
                      column(dataTableOutput(outputId = "table"), width = 12)
                  ))
)

server.R

library(shiny)
library(leaflet)
library(DT)
csvBase <-
    read.csv(
        'https://docs.google.com/spreadsheets/d/e/2PACX-1vSfiMFwfucJl7CXEufaGcZjRS8B6cRZgsHngkqx5moe5edBGtyCc-cQW4Oe_7kdDC0zcdXRBAbWA0GA/pub?output=csv',
        header = TRUE,
        sep = ",",
        stringsAsFactors = F
    )
shinyServer(function(input, output, session) {
    addClass(selector = "body", class = "sidebar-collapse")
    selected_row <- reactive({
        if (!is.null(input$rows)) {
            shinyjs::addClass(selector = "aside.control-sidebar", class = "control-sidebar-open")
        } else {
            shinyjs::removeClass(selector = "aside.control-sidebar", class = "control-sidebar-open")
        }
    })
    output$table <- DT::renderDataTable(
        DT::datatable({
            data <- csvBase
        },
        class = "display nowrap compact",
        selection = "single",
        filter = "top",
        editable = TRUE,
        rownames = FALSE,
        extensions = c('Buttons', 'KeyTable'),
        options = list(
            keys = TRUE,
            stateSave = TRUE,
            searchHighlight = TRUE,
            scrollX = TRUE,
            dom = 'Blfrtip',
            buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),
            columnDefs = list(list(
                visible = FALSE, targets = c()
            ))
        ))
    )
})

При запуске приложения боковая панель автоматически закрывается.

Обратите внимание, что в приложении включено расширение клавиатуры.

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

Причины ОТКРЫТЬ / ЗАКРЫТЬ в конечном итоге состоят в том, чтобы в конечном итоге заполнить ввод текста на боковой панели данными из отдельной строки отдельной таблицы данных.

Любые предложения приветствуются.

...