Laravel-datatables: Atributos na célula td

Criado em 16 mar. 2016  ·  3Comentários  ·  Fonte: yajra/laravel-datatables

Resumo do problema ou solicitação de recurso

Não consigo criar atributos personalizados com dados de coleta. Exemplo: <td data-order="data"></td> . Criar atributos personalizados para a linha funciona bem, mas preciso criar atributos para uma célula ( <td> ). É possível? Este é o meu código ...

Fragmento de código do problema

return Datatables::of($users)
            ->addColumn('action', function ($user) {
                return '<a href="#edit-'.$user->id.'" class="btn btn-xs btn-primary"><i class="glyphicon glyphicon-edit"></i> Edit</a>';
            })
            ->editColumn('id', '{{$id}}')
            ->removeColumn('password')
            ->setRowId('id')
            ->setRowClass(function ($user) {
                return $user->id % 2 == 0 ? 'alert-success' : 'alert-warning';
            })
            ->setRowData([
                'id' => 'test',
            ])
            ->setRowAttr([
                'color' => function($user){
                        return $user->color;
                }
            ])
            ->make(true);

Detalhes do sistema

  • Ubuntu
  • PHP 5.9
  • Laravel Versão 5.1

Comentários muito úteis

Adicionar atributo no td não pode ser feito no lado do servidor. Mas isso pode ser feito no lado do cliente via script js usando createdRow callback. Veja o trecho de exemplo abaixo. Fonte: http://datatables.net/forums/discussion/31139/how-to-add-data-attribute-in-a-cell-server-side

$('#data-table').DataTable({
    ajax: 'some_url',
    createdRow: function( row, data, dataIndex ) {
        $( row ).find('td:eq(2)').attr('data-validate', '1');
    }
});

Todos 3 comentários

Adicionar atributo no td não pode ser feito no lado do servidor. Mas isso pode ser feito no lado do cliente via script js usando createdRow callback. Veja o trecho de exemplo abaixo. Fonte: http://datatables.net/forums/discussion/31139/how-to-add-data-attribute-in-a-cell-server-side

$('#data-table').DataTable({
    ajax: 'some_url',
    createdRow: function( row, data, dataIndex ) {
        $( row ).find('td:eq(2)').attr('data-validate', '1');
    }
});

Obrigado!! Esse código funciona bem;)

@yajra este

Esta página foi útil?
0 / 5 - 0 avaliações