javascript - Shiny 中的单独列搜索(选择输入) renderDatatable()

标签 javascript jquery r datatables shiny

我正在尝试在 Shiny 的应用程序中使用数据表进行单独的列搜索(选择输入)

点击此链接,http://www.datatables.net/examples/api/multi_filter_select.html我尝试将必需的 javascript 代码添加到我 Shiny 的应用程序的 server.R 文件中的 R 代码中。

据我所知,默认情况下,renderDataTable 有单独的搜索框,我使用 searching = FALSE 将其关闭,然后将上述链接中的 js 函数作为回调传递到我的 renderDataTable 代码中。

callback = "initComplete: function (oTable) {
  var api = this.api();
  api.columns().indexes().flatten().each( function ( i ) {
    var column = api.column( i );
    var select = $('<select><option value=\"\"></option></select>')
    .appendTo( $(column.header()).empty() )
    .on( 'change', function () {
      var val = $.fn.dataTable.util.escapeRegex(
        $(this).val()
      );
      column
      .search( val ? '^'+val+'$' : '', true, false )
      .draw();
    } );
    column.data().unique().sort().each( function ( d, j ) {
      select.append( '<option value=\"'+d+'\">'+d+'</option>' )
    } );
  } );
}"

当我使用上述代码运行应用程序时, Shiny 的应用程序中没有反射(reflect)任何更改。由于 I() block 内的各种引号,我遇到了错误,我通过添加转义序列解决了(或没有解决)这些错误。

最佳答案

以防万一其他人也在寻找这个:

在这里您将找到有关在特定列上使用过滤器的示例:

http://shiny.rstudio.com/gallery/datatables-options.html

服务器.R

在这种情况下,只有我的第 1 列底部有一个搜索框。

   output$mytable <- renderDataTable(df, options = list(
                        columnDefs = list(list(targets = c(2,3, 4,5,6,7) - 1, searchable = FALSE)),
                        pageLength = 10

                ))

关于javascript - Shiny 中的单独列搜索(选择输入) renderDatatable(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27650011/

相关文章:

r - 在箱线图上使用 geom_jitter 重叠时标记数据点

r - 根据存储在 data.frame 中的单独字符向量,有条件地重命名列表中的列

javascript - 触发元素点击

javascript - 确定其他作者的 Javascript 安全性,例如

javascript - 如何使文本按钮自动调整

javascript - TypeError : jQuery(. ..).ready(...) 不是一个函数

javascript - 在jquery中读取以#开头的id

javascript - 如何使用变量引用对象

javascript - jQuery:将 JavaScript 移动到页面底部?

r - 使用 glm.fit 、 bigglm、 speedglm、 glmnet、 LiblineaR 对逻辑回归进行基准测试