2017-06-17 11 views
0

レンダリングされたデータテーブルの列1、列3のフィルタを無効にすることができ、以下:しかし(光沢)renderDataTableためのオプションでターゲットに変数を渡す方法

output$datatbl <- DT::renderDataTable(
dt$df, rownames = FALSE, 
filter = 'top', 
options = list(autoWidth = TRUE, 
       columnDefs = list(list(targets = c(1,3), searchable = FALSE)))) 

、私は別のデータセットはにアップロードした私appのため、検索を無効にする列は異なります。私はoptionstargetsの値を更新するために変数を渡す必要があります。私は(eval(substitute()内部exprは、反応性値リストのDTの$ datecolchoicesで発見された列のインデックスをキャッチすることです)、以下を試してみました:

output$datatbl <- DT::renderDataTable(
dt$df, rownames = FALSE, 
filter = 'top', 
options = list(autoWidth = TRUE, 
       columnDefs = list(list(targets = eval(substitute(which(names(dt$df) %in% dt$datecolchoices))), searchable = FALSE)))) 

しかし、上記の値を渡さないようです私は期待どおりにtargetsにvarは、フィルタのための列が無効にされていません。私のコードに何か問題はありますか?ありがとう!

+0

。オプションで 'targets'の値を変更する関数をここに埋め込む方法を知りたいのですが。ありがとう! –

答えて

3

あなたは事前に位置して、列名を決定し、このようにターゲットの引数に渡すことができます:私は `evalの(代替は())`関数の環境で呼び出されていないので、それはだと思う

output$datatbl <- DT::renderDataTable({ 

    disable_search_targets <- which(colnames(iris) %in% c('Petal.Length', 'Species')) 

    datatable(iris, 
      options = list(autoWidth = TRUE, 
          columnDefs = list(list(targets = disable_search_targets, 
                searchable = FALSE)))) 
}) 
+0

ありがとう、それは動作します! –

関連する問題