Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

162
Visualizações
Uso de la extensión Seleccionar y la selección de filas del lado del servidor en una aplicación brillante con tabla de datos

He estado trabajando en una aplicación brillante de R que permite a los usuarios buscar algunos datos. Se muestra en una tabla y quiero que esta tabla tenga dos funcionalidades:

  • Debería permitir al usuario seleccionar filas de la tabla manualmente haciendo clic y usando los botones para seleccionar todo y anular la selección de todo.
  • Debería permitir al usuario seleccionar filas de la tabla mediante el uso de algunas consultas (¡sin filtrarlas! Las filas no seleccionadas aún deberían mostrarse).

Se supone que estas funcionalidades funcionan simultáneamente; por ejemplo, el usuario puede consultar la tabla al proporcionar algunas condiciones, seleccionar todas las filas que las cumplan usando algún botón y luego agregar más filas a la selección haciendo clic en ellas manualmente.

La primera funcionalidad se puede obtener fácilmente usando la extensión Select para DT, y funciona perfectamente bien.

La segunda funcionalidad se puede implementar tomando algunas entradas del usuario y seleccionando las filas apropiadas mediante el uso de objetos dataTableProxy y la función selectRows en el lado del servidor, y funciona perfectamente bien.

El problema surge cuando intento combinarlos. Sé que no es recomendable, la consola muestra advertencias al mezclarlos, pero simplemente me pareció la solución más rápida.

Aquí hay un código simplificado:

 library(shiny) library(DT) ui <- fluidPage( dataTableOutput("my_table"), actionButton("my_button", "Select some rows") ) server <- function(input, output, session) { data(iris) output[["my_table"]] <- renderDataTable( iris, # extensions = c("Select", "Buttons"), # options = list( # dom = 'Brtip', # buttons = c("selectAll", "selectNone"), ## select = list(style = "multi+shift", items = "row") # ), # server = FALSE, ## selection = "none" ) proxy <- dataTableProxy("my_table") observeEvent(input[["my_button"]], { proxy %>% selectRows(1:5) }) } shinyApp(ui, server)

Las líneas que están comentadas activan los botones de selección y reemplazan la selección integrada predeterminada para DT con la API de selección implementada en la extensión Select , lo que hace que la selección de proxy en el lado del servidor sea imposible. Puedo dejar comentadas esas líneas doblemente comentadas y parece funcionar, pero solo de un vistazo. En realidad, la selección predeterminada de brillantes "pierde" con la selección de extensión, lo que puede demostrarse por el hecho de que, aunque algunas filas se muestran como seleccionadas, el botón "Deseleccionar todo" está inactivo.

Mi pregunta es: ¿cuál es la forma más fácil de combinar esos dos enfoques? ¿Hay alguna opción para la extensión "Seleccionar" que me falta que permitiría la selección por proxy brillante? Podría resolverlo implementando manualmente algunas devoluciones de llamada para la tabla en lugar de usar un proxy, pero parece mucho trabajo y agradecería cualquier sugerencia sobre cómo evitarlo.

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda