DataTables を含む RStudio Shiny サーバー ページを取得し、TableTools と ColReorder を以下の例で動作させましたが、ColVis (ボタン) はhttp://datatables.net/extensions/colvis/Show/hide columns
の例と同じように動作しません。:
ボタンをクリックするShow/hide columns
と、リストが下のテーブルの値と混同され、ボタンをもう一度クリックしたり、ページ内の他の場所をクリックしてもリストを非表示にすることはできません (データテーブル ページの例は正しく動作します)。
sDom
また、テーブル内のさまざまな要素を並べ替えるために使用することについて混乱しています。Show/hide columns
ボタンを左上ではなく右上に配置したいと思います。また、テーブルのさまざまな要素を並べ替える方法がわからないためsDom
、列の順序を変更した後、CSV/Excel に保存するか、列を非表示にすると、元のテーブルではなく新しいテーブル レイアウトが表示されます。
何か案は?
ui.R
shinyUI(pageWithSidebar(
h1('Diamonds DataTable with TableTools'),
tagList(
singleton(tags$head(tags$script(src='//cdnjs.cloudflare.com/ajax/libs/datatables/1.9.4/jquery.dataTables.min.js',type='text/javascript'))),
singleton(tags$head(tags$script(src='//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/js/TableTools.min.js',type='text/javascript'))),
singleton(tags$head(tags$script(src='//cdn.datatables.net/colreorder/1.1.1/js/dataTables.colReorder.min.js',type='text/javascript'))),
singleton(tags$head(tags$script(src='//cdn.datatables.net/colvis/1.1.0/js/dataTables.colVis.min.js',type='text/javascript'))),
singleton(tags$head(tags$script(src='//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/js/ZeroClipboard.min.js',type='text/javascript'))),
singleton(tags$head(tags$link(href='//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/css/TableTools.min.css',rel='stylesheet',type='text/css'))),
singleton(tags$script(HTML("if (window.innerHeight < 400) alert('Screen too small');")))
),
dataTableOutput("mytable")
)
)
サーバー.R
shinyServer(function(input, output, session) {
output$mytable = renderDataTable({
diamonds[,1:6]
}, options = list(
"sDom" = 'RMDCT<"clear">lfrtip',
"oTableTools" = list(
"sSwfPath" = "//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/swf/copy_csv_xls.swf",
"aButtons" = list(
"copy",
"print",
list("sExtends" = "collection",
"sButtonText" = "Save",
"aButtons" = c("csv","xls")
)
)
)
)
)
})
#
また、列の並べ替えと列の並べ替えにも問題があります。並べ替えてから列を並べ替え、もう一度並べ替えると、列ヘッダーが反転します。たとえば、列の深さで並べ替え、列 1 を左にシフトし、ヘッダーをもう一度クリックして並べ替えると、間違った列のコンテンツでヘッダーの深さが得られます。スナップショットを参照してください: