2014-12-25 39 views
2

我想有个人列搜索(选择输入)中一个闪亮的应用单独列搜索在闪亮

使用数据表下面这个链接(选择输入)renderDatatable(),http://www.datatables.net/examples/api/multi_filter_select.html我尝试添加必要的JavaScript代码到我闪亮的应用程序的server.R文件中的R代码。

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

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应用程序中。由于I()块内的各种引用,我解决了(或没有)通过添加转义序列而导致错误。

回答

0

万一别人也在寻找这样的:

在这里你可以使用特定的列过滤器发现的例子:

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

server.R

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

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

       ))