解決策が見つからない問題があります。 DT :: datatableを使って私の輝くアプリにテーブルを表示したい。このタブでは、座標で定義されたいくつかのセルに色付けしたいと思います。ここでは色の細胞はNA値に対応するコードの例を次に示します。RでのDataTableコールバック動作Shiny
test.table <- data.frame(lapply(1:8, function(x) {1:1000}))
test.table[c(2,3,7), c(2,7,6)] <- NA
id <- which(is.na(test.table))
datatable(test.table,
options = list(drawCallback=JS(
paste("function(row, data) {",
paste(sapply(1:ncol(test.table),function(i)
paste("$(this.api().cell(",id %% nrow(test.table)-1,",",trunc(id/nrow(test.table))+1,").node()).css({'background-color': 'lightblue'});")
),collapse = "\n"),"}"))
))
Rコンソール(RStudio)で実行した場合、このコードは正常に動作しますが、私は私の光沢のあるアプリでこれを実装する際に、少しバグがあります:最初のページでは、色のついたセルが適切な場所にありますが、次のボタンをクリックして他のページを表示すると、色付きのセルがnout更新されているように見えます。ここ はその問題に取り組ん例です。
shinyApp(
ui = fluidPage(
fluidRow(
column(12,
dataTableOutput('table')
)
)
),
server = function(input, output) {
test.table <- data.frame(lapply(1:8, function(x) {1:1000}))
test.table[c(2,3,7), c(2,7,6)] <- NA
id <- which(is.na(test.table))
output$table <- renderDataTable(
datatable(test.table,
options = list(drawCallback=JS(
paste("function(row, data) {",
paste(sapply(1:ncol(test.table),function(i)
paste("$(this.api().cell(",id %% nrow(test.table)-1,",",trunc(id/nrow(test.table))+1,").node()).css({'background-color': 'lightblue'});")
),collapse = "\n"),"}"))
)))
}
)
誰かがその問題のために私を助けることができる場合、私は
よろしく
サム
ありがとうございました!それはうまく動作します:) –
喜んでそれが助け! –