The extension is inspired by the yii2-widget-datatables by fedemotta., (*1)
This extension provides the DataTables integration for the Yii2 framework., (*2)
 
 
 
, (*3)
Installation
The preferred way to install this extension is through composer., (*4)
With Composer installed, you can then install the extension using the following commands:, (*5)
$ php composer.phar require jlorente/yii2-datatables "*"
or add, (*6)
...
    "require": {
        // ... other configurations ...
        "jlorente/yii2-datatables": "*"
    }
to the require section of your composer.json file., (*7)
Usage
Use DataTables as any other other Yii2 widget., (*8)
use jlorente\datatables\grid\DataTables;
$searchModel = new ModelSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
DataTables::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        //columns
        ['class' => 'yii\grid\ActionColumn'],
    ],
]);
This extension uses the Bootstrap integration plugin to provide a Yii2 style by default., (*9)
The TableTools plugin is also available. Specify the DOM and the tableTools settings in the clientOptions array as the following example., (*10)
DataTables::widget([
    //Other configurations
    'clientOptions' => [
        "lengthMenu"=> [[20,-1], [20,Yii::t('app',"All")]],
        "info"=>false,
        "responsive"=>true, 
        "dom"=> 'lfTrtip',
        "tableTools"=>[
            "aButtons"=> [  
                [
                "sExtends"=> "copy",
                "sButtonText"=> Yii::t('app',"Copy to clipboard")
                ],[
                "sExtends"=> "csv",
                "sButtonText"=> Yii::t('app',"Save to CSV")
                ],[
                "sExtends"=> "xls",
                "oSelectorOpts"=> ["page"=> 'current']
                ],[
                "sExtends"=> "pdf",
                "sButtonText"=> Yii::t('app',"Save to PDF")
                ],[
                "sExtends"=> "print",
                "sButtonText"=> Yii::t('app',"Print")
                ],
            ]
        ]
    ],
]);
You can also use DataTables in the JavaScript layer of your application. To 
achieve this, you need to include DataTables as a dependency of your Asset file. 
In this case, you could use yii\grid\GridView or using the datatables options 
retrieve => true to avoid errors. In both case all options must be in the 
Javascript object., (*11)
public $depends = [
...
    'jlorente\datatables\assets\DataTablesAsset',
...
];