【问题标题】:Datatables responsive plugin displays Reactstrap (Bootstraps 4) buttons as objectsDatatables 响应式插件将 Reactstrap (Bootstraps 4) 按钮显示为对象
【发布时间】:2019-09-03 04:03:11
【问题描述】:

美好的一天,我正在我的React js 应用程序中运行一个服务器端数据表脚本,我设法让它显示我的reactstrap 按钮,如下所示:

"columnDefs": [
   {
     "targets": 4,
     "data": null,
     "createdCell": function (td, cellData, rowData, row, col){
       return _this.datatableButtons(td);
    }
  }
]
datatableButtons(td) {
  ReactDOM.render( 
    <ButtonGroup>
      <Button className="btn-icon btn-icon-only" color="primary" title="Edit Branch">
       <i className="pe-7s-pen btn-icon-wrapper"> </i>
      </Button>
      <Button className="btn-icon btn-icon-only" color="warning" title="Activate Branch">
       <i className="pe-7s-switch btn-icon-wrapper"> </i>
      </Button>
      <Button className="btn-icon btn-icon-only" color="danger" title="Delete Branch" onClick={() => this.deleteBranch()}>
       <i className="pe-7s-trash btn-icon-wrapper"> </i>
      </Button>
    </ButtonGroup>, td);
}

这很棒,但每当我测试它的响应式视图时,它不再显示按钮,而是在所有隐藏的表格行上显示 [object Object]。我很想知道是否有解决方案。

【问题讨论】:

    标签: jquery reactjs datatables bootstrap-4 reactstrap


    【解决方案1】:

    我设法通过添加以下代码来解决它:

          'responsive': {
            details: {
                renderer: function ( api, rowIdx, columns ) { 
                    var data = $.map( columns, function ( col, i ) {
                      if(col.columnIndex == 3) {
                        var result = '';
                        if (col.hidden) {
                          result = '<tr data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
                                      '<td>'+
                                        '<ul class="dtr-details">'+
                                          '<li>'+
                                            '<span class="dtr-title">'+col.title+':'+'</span>&nbsp;&nbsp;&nbsp;';
    
                            if($.trim(col.data.activate).toUpperCase() == 'ACTIVE')
                              result += '<label class="switch"><input type="checkbox" name="active" value="active" checked /><span class="slider"></span></label>';
                            else
                              result += '<label class="switch"><input type="checkbox" name="active" value="active" /><span class="slider"></span></label>';
    
                              result += '</li>'+
                                      '</ul>'+
                                    '</td>'+
                                  '</tr>';
                        }
                        return result;
                      }else if(col.columnIndex == 4) {
                        return col.hidden ?
                              '<tr data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
                                  '<td>'+
                                    '<ul class="dtr-details">'+
                                      '<li>'+
                                        '<span class="dtr-title">'+col.title+':'+'</span>&nbsp;&nbsp;&nbsp;'+
                                        '<div class="btn-group">'+
                                          '<button type="button" class="btn btn-icon btn-icon-only btn-primary" title="Edit Branch"><i class="pe-7s-pen btn-icon-wrapper"> </i></button>'+
                                          '<button type="button" class="btn btn-icon btn-icon-only btn-danger delete_branch" id="del_'+col.rowIndex+'"><i class="pe-7s-trash btn-icon-wrapper"> </i></button>'+
                                        '</div>'+
                                      '</li>'+
                                    '</ul>'+
                                  '</td>'+
                              '</tr>' :
                              '';
                      } else {
                        return col.hidden ?
                              '<tr data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
                                  '<td>'+
                                    '<ul class="dtr-details">'+
                                      '<li>'+
                                        '<span class="dtr-title">'+col.title+':'+'</span>'+
                                        '<span class="dtr-data">'+col.data+'</span>'+
                                      '</li>'+
                                    '</ul>'+
                                  '</td>'+
                              '</tr>' :
                              '';
                      }  
                    } ).join('');
    
                    return data ?
                        $('<table/>').append( data ) :
                        false;
                }
            }
          }
    

    我改用香草引导程序

    【讨论】:

      猜你喜欢
      • 2022-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      • 2017-12-03
      • 2020-04-21
      • 2017-05-13
      相关资源
      最近更新 更多