如何使用 rhansontable 和复选框更改某些行的颜色?

Posted

技术标签:

【中文标题】如何使用 rhansontable 和复选框更改某些行的颜色?【英文标题】:How to change the colour of some rows with rhansontable and checkbox? 【发布时间】:2022-01-02 17:15:31 【问题描述】:

当用户取消选中其中一个单元格中的复选框时,我想更改整行的颜色。 (可以是多行)

到目前为止,我只能更改包含复选框的单元格的颜色,而不是整行。在这个例子中,整行 6 应该是彩色的。

library(shiny)
library(rhandsontable)

# Define UI for application that draws a histogram
ui <- fluidPage(
    rHandsontableOutput('table')
)

# Define server logic required to draw a histogram
server <- function(input, output) 

    df <- data.frame(alphabet = letters[1:10],
                     include = TRUE)

    output$table <- rhandsontable::renderRHandsontable(

        rhandsontable(df, height = 500) %>%
        hot_col(col = "include",
                renderer = "
                function (instance, td, row, col, prop, value, cellProperties) 
                
                    Handsontable.renderers.CheckboxRenderer.apply(this, arguments);

                    var col_value = instance.getData()[row][1]

                    if (col_value === false) 
                    
                        td.style.background = 'pink';
                    
                
            ")
        )


# Run the application
shinyApp(ui = ui, server = server)

【问题讨论】:

【参考方案1】:

解决了。

library(shiny)
library(rhandsontable)

# Define UI for application that draws a histogram
ui <- fluidPage(
    rHandsontableOutput('table')
)

# Define server logic required to draw a histogram
server <- function(input, output) 

    df <- data.frame(alphabet = letters[1:10],
                     include = TRUE)

    output$table <- rhandsontable::renderRHandsontable(

        rhandsontable(df, height = 500) %>%
        hot_col(col = "include",
                renderer = "
                function (instance, td, row, col, prop, value, cellProperties) 
                
                    Handsontable.renderers.CheckboxRenderer.apply(this, arguments);

                    var col_value = instance.getData()[row][1]

                    if (col_value === false) 
                    
                        td.style.background = 'pink';
                    
                
            ") %>%
        hot_col(col = "alphabet",
                renderer = "
                function (instance, td, row, col, prop, value, cellProperties) 
                
                    Handsontable.renderers.TextRenderer.apply(this, arguments);

                    var col_value = instance.getData()[row][1]

                    if (col_value === false) 
                    
                        td.style.background = 'pink';
                    
                
            ")
        )


【讨论】:

以上是关于如何使用 rhansontable 和复选框更改某些行的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

MudTreeView - 如何更改复选框的大小和颜色?

复选框状态更改时如何更新mysql字段?使用 jquery (ajax)、php 和 mysql

如何更改多个填充的复选框输入字段值?

使用element中的table组件,如何单击某一行数据时选中对应的复选框

如何在 android 复选框检查更改上接收事件?

如果在百里香中选中复选框,如何更改布尔值?