首页 > 解决方案 > 闪亮的数据表工具提示/弹出框不适用于分页

问题描述

我想在数据表的每一行上添加一个弹出框。使用 [here] 提供的解决方案(工具提示或弹出框在 Shiny 数据表中获取行名?)(我不懂 JavaScript,所以我盲目地复制粘贴代码)我设法在表的第一页上添加了弹出框.

问题是表格很大,所以我不得不将它分成更多的页面。当我选择表格的另一页时,弹出框停止工作。

这是我正在使用的代码

output$view_data<-DT::renderDataTable({
    DT::datatable(Extraction(),rownames = FALSE,escape = FALSE,
        callback = JS(paste("
            var tips =",paste0("[",paste0("'",unlist(DrugFilter()),"'",collapse=","),"]"),",
            firstColumn = $('#view_data tr td:first-child');                                    
            for (var i = 0; i < tips.length; i++) 
                {$(firstColumn[i]).attr('title', tips[i]);}"
        ))
     ))
}, server = FALSE)

如何修改代码以使弹出框在所有表格页面上工作,而不仅仅是在第一个页面上?

标签: javascriptrshinypagingdt

解决方案


我会尝试rowCallback

rowCallback <- c(
  "function(row, data, displayNum, displayIndex){",
  sprintf("  var tips = [%s];", 
          paste0("'",unlist(DrugFilter()),"'",collapse=",")),
  "  for(var i = 0; i < tips.length; i++){",
  "    if(displayIndex== i){",
  "      $('td:eq(0)',row).attr('title', tips[i]);",
  "    }",
  "  }",
  "}"
)

datatable(Extraction(), 
          rownames = FALSE, 
          escape = FALSE, 
          options = list(
            rowCallback = JS(rowCallback)
          )
)

推荐阅读