JQuery Dynatable Yii2 Extension JQuery from: http://dynatable.com
Yii2 Extension by philipp@frenzel.net
Package is although registered at packagist.org - so you can just add one line of code, to let it run!
add the following line to your composer.json require section:
"philippfrenzel/yii2-dynatable":"*",
And ensure, that you have the follwing plugin installed global:
php composer.phar global require "fxp/composer-asset-plugin:~1.0"
29-11-2014 Updated to latest 2.2.3 Version of the library
Quickstart Looks like this:
<?= net\frenzel\dynatable\yii2dynatable::widget([
'id' => "nameofthetablethatwillbedynamised"
]);
Template for table:
<table id="nameofthetablethatwillbedynamised">
<thead>
<tr>
<th data-dynatable-column="name">Name can contain anything now...</th>
<th>Hobby</th>
<th>Favorite Music</th>
</tr>
</thead>
<tbody>
<tr>
<td>Fred</td>
<td>Roller Skating</td>
<td>Disco</td>
</tr>
<tr>
<td>Helen</td>
<td>Rock Climbing</td>
<td>Alternative</td>
</tr>
<tr>
<td>Glen</td>
<td>Traveling</td>
<td>Classical</td>
</tr>
</tbody>
</table>
extended options are:
'clientOptions' => [
'table' => [
'defaultColumnIdStyle' => 'trimDash' //can be "underscore" too - look dynatable.js website for more options
],
'dataset' => [
'ajax' => true,
'ajaxUrl' => Url::to('/your/route/to/json'),
'ajaxOnLoad' => true,
'records' => [],
],
'features' => [
'paginate' => false,
'recordCount' => false,
'sorting' => true,
'search' => false
],
'params' => [
//'queries' => 'queries',
'sorts' => 'sort',
'page' => 'pageCount',
'perPage' => 'perPage',
'offset' => 'offset',
'records' => 'items',
'record' => 'item',
'queryRecordCount' => 'totalCount',
'totalRecordCount' => 'totalCount'
]
]
If you set the params like above, the dynatable should work fine with the build in yii2 rest api.
if you are using ajax, you need to ensure, that the response looks like this:
{
"records": [
{
"someAttribute": "I am record one",
"someOtherAttribute": "Fetched by AJAX"
},
{
"someAttribute": "I am record two",
"someOtherAttribute": "Cuz it's awesome"
},
{
"someAttribute": "I am record three",
"someOtherAttribute": "Yup, still AJAX"
}
],
"queryRecordCount": 3,
"totalRecordCount": 3
}
Comments