Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 切换(即隐藏/取消隐藏)数据表中的行_Javascript_R_Shiny_Datatables_Dt - Fatal编程技术网

Javascript 切换(即隐藏/取消隐藏)数据表中的行

Javascript 切换(即隐藏/取消隐藏)数据表中的行,javascript,r,shiny,datatables,dt,Javascript,R,Shiny,Datatables,Dt,有没有一种方法可以实现这一点:我已经显示了一个datatable,如果选择了行索引并单击了切换按钮,我想切换一个特定的行。我只是想隐藏行,而不是完全从数据表中删除。 我得到了如下的用户界面。如何实现服务器端 library(shiny) library(DT) data <- data.frame( Name = c("Andy", "Bob", "Chad"), Job = c("Clerk"

有没有一种方法可以实现这一点:我已经显示了一个datatable,如果选择了行索引并单击了切换按钮,我想切换一个特定的行。我只是想隐藏行,而不是完全从数据表中删除。 我得到了如下的用户界面。如何实现服务器端

library(shiny)
library(DT)

data <- data.frame(
    Name = c("Andy", "Bob", "Chad"),
    Job = c("Clerk", "Pilot", "Electrician")
)

ui <- fluidPage(
    
    box(id = "myBox", title = NULL, 
        selectInput(inputId = "row_index", label = "Row to Toggle", choices = c(1,2,3))
    ),
    actionButton(inputId = "button", label = "Show/Hide"),
    DT::dataTableOutput(('DTOut'))
)

server <- function(input, output) {
    
    output$DTOut <- DT::renderDataTable({
        data
    })
}
shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(DT)

数据这里有一个方法。它要求在第一个位置有一列行索引。如果不想显示行索引,请添加此列并隐藏它

library(shiny)
library(DT)

initComplete <- JS(
  "function(settings, json) {",
  "  var table = this.api();",
  "  var nrows = table.rows().count();",
  "  $('#button').on('click', function() {",
  "    var nrows_filtered = table.rows({search:'applied'}).count();",
  "    if(nrows_filtered === nrows) {",
  "      var selection = $('select[id=row_index] option').val();",
  "      var rowsToShow = [];",
  "      for(var i = 1; i <= nrows; ++i) {",
  "        if(i != selection) rowsToShow.push('^' + i + '$');",
  "      }",
  "      var regex = '(' + rowsToShow.join('|') + ')';",
  "      table.column(0).search(regex, true).draw();",
  "    } else {",
  "      table.columns().search('').draw();",
  "    }",
  "  });",
  "}"
)

data <- data.frame(
  Name = c("Andy", "Bob", "Chad"),
  Job = c("Clerk", "Pilot", "Electrician")
)

ui <- fluidPage(
  
  wellPanel(id = "myBox", 
      selectInput(inputId = "row_index", label = "Row to Toggle", choices = c(1,2,3))
  ),
  actionButton(inputId = "button", label = "Show/Hide"),
  DTOutput("DTOut")
  
)

server <- function(input, output) {
  
  output$DTOut <- renderDT({
    datatable(data, options = list(initComplete = initComplete))
  })
  
}

shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(DT)

initComplete只需根据selection@PorkChop是否意味着每次创建
数据
对象时,我都需要以某种反应形式运行
renderDataTable
?我正在做的真正的桌子可能很大。我问题中的那个只是一个简单的例子。