specifi / yii2-datatables
Yii2 扩展 DataTables jQuery 插件
1.1.0
2018-02-21 17:04 UTC
Requires
- php: >=5.4.0
- bower-asset/datatables: ~1.10
- bower-asset/datatables-plugins: ~1.0
- yiisoft/yii2: ~2.0
README
Yii2 小部件,用于 DataTables jQuery 插件
正在进行中。尚未准备好用于生产
安装
安装此扩展的首选方法是通过 composer。
运行以下命令:
composer require "nullref/yii2-datatables" "*"
或者将以下内容添加到您的 composer.json
文件的 require 部分:
"nullref/yii2-datatables": "*"
基本用法
<?= \nullref\datatable\DataTable::widget([ 'data' => $dataProvider->getModels(), 'columns' => [ 'id', 'name', 'email' ], ]) ?>
添加行链接
<?= \nullref\datatable\DataTable::widget([ 'columns' => [ //other columns [ 'class' => 'nullref\datatable\LinkColumn', 'url' => ['/model/delete'], 'options' => ['data-confirm' => 'Are you sure you want to delete this item?', 'data-method' => 'post'], 'queryParams' => ['id'], 'label' => 'Delete', ], ], ]) ?>
LinkColumn
属性
label
- 放置在a
标签中的文本;url
- 将传递给Url::to()
;options
-a
标签的 HTML 选项;queryParams
- 添加到url
的参数数组
样式
DataTables
支持多种样式解决方案,包括 Bootstrap
、jQuery UI
、Foundation
。
'assetManager' => [ 'bundles' => [ 'nullref\datatable\DataTableAsset' => [ 'styling' => \nullref\datatable\DataTableAsset::STYLING_BOOTSTRAP, ] ], ],
自定义资源
可以使用自定义样式和脚本
'nullref\datatable\DataTableAsset' => [ 'sourcePath' => '@webroot/js/plugin/datatables/', 'js' => [ 'jquery.dataTables-1.10-cust.js', 'DT_bootstrap.js', ], 'css' => [ 'data-table.css', ], 'styling' => false, ]
服务器端处理
要启用服务器端处理,将 DataTableAction
添加到控制器中,如下所示:
class SomeController extends Controller { public function actions() { return [ 'datatables' => [ 'class' => 'nullref\datatable\DataTableAction', 'query' => Model::find(), ], ]; } }
可以通过闭包自定义搜索和排序
public function actions() { return [ 'datatables' => [ 'class' => 'nullref\datatable\DataTableAction', 'query' => Model::find(), 'applyOrder' => function($query, $columns, $order) { //custom ordering logic return $query; }, 'applyFilter' => function($query, $columns, $search) { //custom search logic return $query; }, ], ]; }
在 DataTable 选项中指定
{ "serverSide": true, "ajax": "/datatables" }