2017-08-09 32 views
0

我一直試圖在數據表的選項列表中使用rowCallback參數。它不殺死應用程序,但按原樣運行時,表格不會加載到頁面。 ATS是數據表的列,ATS中值爲「Covered」的每行應該是不同於其他行的顏色行。這是我第一次嘗試在有光澤的地方使用javaScript,所以我不知道爲什麼表格不顯示。任何有關什麼是錯的建議? 乾杯使用Rshiny數據表包中的JS突出顯示基於單元格輸入的行

createdRow = I(
    "function(row, data) { 
    if (parseFloat(data[5]) <= -11.0) 
    $(row).css('background-color', 'red'); 
    else 
    $(row).css('background-color', '#00adff'); 
    }); 
}" 

回答

0

我通常喜歡使用內置的功能,而不是創建自己的自定義JavaScript。在這種情況下,您可以使用formatStyle

library(DT) 
mtcars$cyl=as.character(mtcars$cyl) 
datatable(mtcars) %>% formatStyle('cyl', 
    target = 'row', 
    backgroundColor = styleEqual(c("6"), c('#00adff')) 
) 

enter image description here

您可以添加多個規則styleEqual(c("6","5"), c('#00adff',"green")),但據我所知它不包含的,如果選項:它爲數字或着色基於特定字符串值的偉大工程與弦的建築結構。它這樣做的數字,所以我們可以創建一個「幫手」列立足於行的顏色,並使用columnDefs從結果隱藏列:

mtcars$cyl = as.character(mtcars$cyl) 
mtcars$helper = mtcars$cyl=="6" 
datatable(mtcars,options=list(columnDefs = 
     list(list(visible=FALSE, targets=which(colnames(mtcars)=='helper'))))) %>% 
    formatStyle('helper', target = 'row', 
    backgroundColor = styleEqual(c(1,0), c('#EDEDED','#00adff'))) 

希望這有助於!

enter image description here

+0

我剛剛發現的解決方案,非常感謝!我現在陷入了類似的問題,其中styleEqual沒有那麼有用。我需要突出顯示列單元格> =某個數字的行。我已經嘗試了很多不同的java腳本示例,但都不成功。有什麼想法嗎? – Avioli

+0

您可以嘗試StyleInterval:'backgroundColor = styleInterval(6,c('','green')))'例如,顏色值大於6的所有行。如果有幫助,請考慮接受這個答案嗎?謝謝 – Florian

+0

謝謝你,你知道了!真的有幫助 – Avioli

相關問題