根据上一行修改 R DT::datatable 中的单元格

问题描述 投票:0回答:1

我有一个闪亮的应用程序,我想根据前一行中同一单元格的值修改显示的数据和/或单元格的属性。

在我的代码中,我根据 rowCallback 中 data[0] 的值格式化整行。

output$result <- DT::renderDataTable(tabledata(),
    class = c('compact'),
    rownames = FALSE,
    server = FALSE,
    escape = TRUE,
    extensions = options = list(
                  rowCallback=JS("
                    function (row, data, index) {
                      var string=data[1], substring = 'sub total';
                     if (data[0]=='Grand Total') {
                       $(row).css('background-color', '#DEDEDE'), $(row).css('font-weight', 'bold') ;
                     }
                     else if (data[0].includes('sub total')) {
                       $(row).css('font-weight', 'bold');
                     }
                     }"
                   )
                  )
    )

我可以使用其中一个回调函数根据前一行中同一单元格的值实现对 data[0] 单元格的修改吗?

r shiny dt
1个回答
2
投票

所以我改变了策略并使用了以下drawCallback调用

drawCallback=JS(" function ( settings ) {
           var api = this.api();
           var mydata = api.rows( {page:'current'} ).data();
           var last=null;
           api.column(0,{page:'current'}).data().each( function ( value, index ) {
               if ( value == last) {
                   mydata[index][0] = ''
                   api.rows({ page: 'current' }).invalidate();
                   }
               last=value;
               });
            }"
            )
© www.soinside.com 2019 - 2024. All rights reserved.