2014-12-25 70 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 

       ))