小编phi*_*i_b的帖子

渲染 DT 中单列的下拉列表闪亮但仅在单元格单击时加载并使用 replaceData()

目标

  • 要在 DT 数据表中选择下拉列表,而不是在数据表的构建中,而是在单元格单击上构建,replaceData()并使用 RDBMS (SQL Server) 上的数据。
  • 例如,当我单击 的选定选项时,Ohio我想使用 id 设置我的数据(和 RDBMS)2

问题

  • replaceData()

    • select 的事件是未绑定的。这很奇怪,因为只有我点击的单元格是未绑定的。
    • 所选页面丢失
    • 更新 StateId 有效(但如果我选择另一个原始数据并返回,则无法再次单击)
    • 而且,我认为这是一件积极的事情,选择是在行选择时绘制的
  • 没有 replaceData()

    • 所有事件都已绑定,但我无法更新 DT 数据表中的 StateId
    • 既不在数据中(因此不在 RDMBS SQL 更新中)

还没用

我使用下面的这个技巧在 DT 表中添加复选框。它工作得很好,但是当有大量数据时,它在建筑物中非常慢,因为每个复选框的 html 数量非常重要。

阅读,并受到启发

我使用下面的这个技巧,类似于上一部分,来编写我的代码。但是我尝试仅基于单元格单击来构建,因为我知道上一部分很慢

这是我的代表

预先感谢您的帮助 :)

library(shiny)
library(DT)
library(dplyr)
library(shinyjs)
library(DescTools)
# inspired by /sf/ask/4005092521/#57218361
# 
ui <- fluidPage(
  useShinyjs(),
  tags$head(tags$script(
    HTML("
      Shiny.addCustomMessageHandler('unbindDT', function(id) { …
Run Code Online (Sandbox Code Playgroud)

jquery r datatables shiny dt

5
推荐指数
1
解决办法
743
查看次数

获取在 Shiny 中触发的事件?

我想在下面的示例中知道在多个ObserveEvent().

ui <- fluidPage(
  numericInput("a", "a", 0),
  textInput("b", "b")
)

server <- function(input, output, session) {
  observeEvent({
    input$a
    input$b
  },{

    # If only input$a is fired, I want to know that is input$a

  })
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

或者唯一的解决方案是ObserveEvent()像第二个链接那样有两个?像那样 ?

ui <- fluidPage(
  numericInput("a", "a", 0),
  textInput("b", "b")
)

server <- function(input, output, session) {
  observeEvent({
    input$a
  },{

    my_function_or_reactive_function(input,1)

  })

  observeEvent({
    input$b
  },{

    my_function_or_reactive_function(input,2)

  })

}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

关联:

events r shiny

4
推荐指数
1
解决办法
599
查看次数

标签 统计

r ×2

shiny ×2

datatables ×1

dt ×1

events ×1

jquery ×1