チェックボックスとページ付けを備えたShinyのデータテーブル

ファイブス

事前に選択されたチェックボックスを使用して、Rのページ付けを使用してデータテーブルを作成しようとしています。他の例(ここなど)では、ページ付けは考慮されていません。

次の例では、ページに戻るとチェックボックスのステータスがリセットされます。さらに、変数excludedrowsは、他のページでチェックされた行をカウントしません。

library(shiny)
library(DT)

ui = fluidPage(

tags$script(HTML('$(document).on("click", "input", function () {
var checkboxes = document.getElementsByName("row_selected");
var checkboxesChecked = [];
for (var i=0; i<checkboxes.length; i++) {

if (checkboxes[i].checked) {
checkboxesChecked.push(checkboxes[i].value);
}}
Shiny.onInputChange("checked_rows",checkboxesChecked);
})')),

  verbatimTextOutput("excludedRows"),
  DTOutput('myDT')
)

server = function(input, output) {

  mymtcars_reactive <- reactive(mtcars)

  output$myDT <- renderDataTable({

    mymtcars <- mymtcars_reactive()
    mymtcars[["Select"]] <- paste0('<input type="checkbox" name="row_selected" value=',1:nrow(mymtcars),' checked>')

    datatable(mymtcars,selection = "multiple",
          options = list(pageLength = 14,
                         lengthChange = FALSE,
                         stateSave = TRUE),
          rownames= FALSE,
          escape=F)
  })

  output$excludedRows <- renderPrint({
    intersect(input$checked_rows,1:nrow(mymtcars_reactive()))
  })
}

shinyApp(ui,server, options = list(launch.browser = TRUE)
ステファン・ローラン

方法は次のとおりです。

library(shiny)
library(DT)

mymtcars <- mtcars
mymtcars[["Select"]] <- paste0('<input type="checkbox" name="row_selected" value=',1:nrow(mymtcars),' checked>')
mymtcars[["_id"]] <- paste0("row_", seq(nrow(mymtcars)))

callback <- c(
  sprintf("table.on('click', 'td:nth-child(%d)', function(){", 
          which(names(mymtcars) == "Select")),
  "  var checkbox = $(this).children()[0];",
  "  var $row = $(this).closest('tr');",
  "  if(checkbox.checked){",
  "    $row.removeClass('excluded');",
  "  }else{",
  "    $row.addClass('excluded');",
  "  }",
  "  var excludedRows = [];",
  "  table.$('tr').each(function(i, row){",
  "    if($(this).hasClass('excluded')){",
  "      excludedRows.push(parseInt($(row).attr('id').split('_')[1]));",
  "    }",
  "  });",
  "  Shiny.setInputValue('excludedRows', excludedRows);",
  "});"
)

ui = fluidPage(
  verbatimTextOutput("excludedRows"),
  DTOutput('myDT')
)

server = function(input, output) {

  output$myDT <- renderDT({

    datatable(
      mymtcars, selection = "multiple",
      options = list(pageLength = 5,
                     lengthChange = FALSE,
                     rowId = JS(sprintf("function(data){return data[%d];}", 
                                        ncol(mymtcars)-1)),
                     columnDefs = list( # hide the '_id' column
                       list(visible = FALSE, targets = ncol(mymtcars)-1)
                     )
      ),
      rownames = FALSE,
      escape = FALSE,
      callback = JS(callback)
    )
  }, server = FALSE)

  output$excludedRows <- renderPrint({
    input[["excludedRows"]]
  })
}

shinyApp(ui,server, options = list(launch.browser = TRUE))

ここに画像の説明を入力してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

列フィルターのドロップダウンと複数のチェックボックスの選択を備えたデータテーブル

ページネーション付きのデータテーブルのWicketチェックボックス

3レベルのマルチインデックスを備えたPandasピボットテーブル

永続的なエディターを備えたチェックボックス

チェックボックス、ルーティング、パラメータの受け渡しを備えたForm_for

データテーブルの複数のページから選択したチェックボックスの値を渡す方法

グラフデータベースとリンク/ブリッジテーブルを備えたRDB

リアクティブフォームを備えたAngular2マルチカテゴリチェックボックスフィルター

Laravelでページ付けされたフォームを使用した複数のチェックボックスフィルター

チェックボックスは、jQueryチェックアンチェック機能を備えたテーブル行では機能しません

テキストフィールドとチェックボックスを備えた動的グリッドペイン

インデックスアクションを備えたカスタムアクティブ管理ページ

チェックボックスとラジオボタンを備えたAngularJSカスタムフィルター

パイプ区切り値とカスタム検証ルールを備えたチェックボックスグリッドを備えたTypescript

タブコントロールでタブを切り替えるときにデータのテキストボックスをチェックする方法

複数のチェックボックスでページ付けとフィルタリングを使用するときにURLを短くする方法

リアクティブカラムとポップオーバーツールチップを備えたR光沢のあるデータテーブル

WPFをダブルクリックしたときにチェックボックスのステータスを切り替えます

入力フィールドを備えたブートストラップチェックボックス

複数のフィルターを備えたjQueryチェックボックス

チェック/チェックを外した場合のデータテーブルチェックボックスの調整方法

データテーブルの各列にチェックボックスがありますチェックボックスが選択されているときに並べ替えを停止したい

並べ替え、ページ付け、フィルタリングを備えた角度データテーブル

Primefaces5を使用したデータテーブルのチェックボックス

チェックボックスとラジオボタンを備えたTreeView

チェックボックスforeachを備えたJqueryヘルパー関数

チェックボックスを作成すると、別のページにチェックを入れた場合にデータが移動します

ネストされたチェックボックスを備えたタブアイテムとしてデータバインディングカテゴリを含むテンプレート

材料-テーブルはチェックボックスをラジオボタンに置き換えます

TOP 一覧

  1. 1

    Unity:未知のスクリプトをGameObject(カスタムエディター)に動的にアタッチする方法

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    Ansibleで複数行のシェルスクリプトを実行する方法

  4. 4

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  5. 5

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  6. 6

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  7. 7

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  8. 8

    Chromeウェブアプリのウェブビューの高さの問題

  9. 9

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  10. 10

    Windows 10の起動時間:以前は20秒でしたが、現在は6〜8倍になっています

  11. 11

    Reactでclsxを使用する方法

  12. 12

    ファイル内の2つのマーカー間のテキストを、別のファイルのテキストのセクションに置き換えるにはどうすればよいですか?

  13. 13

    MLでのデータ前処理の背後にある直感

  14. 14

    グラフからテーブルに条件付き書式を適用するにはどうすればよいですか?

  15. 15

    Pythonを使用して同じ列の同じ値の間の時差を取得する方法

  16. 16

    mutate_allとifelseを組み合わせるにはどうすればよいですか

  17. 17

    ネットワークグラフで、ネットワークコンポーネントにカーソルを合わせたときに、それらを強調表示するにはどうすればよいですか?

  18. 18

    テキストフィールドの値に基づいて UIslider を移動します

  19. 19

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  20. 20

    PowerShellの分割ファイルへのヘッダーの追加

  21. 21

    ソートされた検索、ターゲット値未満の数をカウント

ホットタグ

アーカイブ