【发布时间】:2015-02-23 08:17:44
【问题描述】:
我正在尝试在 Shiny 应用程序中使用数据表进行单个列搜索(选择输入)
点击此链接,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() 块内的各种引号,我遇到了错误,我通过添加转义序列解决了(或没有解决)。
【问题讨论】:
标签: javascript jquery r datatables shiny