olegbolden / yii2-show-n-pages
类似于 DataTables 的下拉页面大小选择器
v2.2
2023-10-04 08:22 UTC
Requires
- php: >=5.6.0
- yiisoft/yii2: ~2.0.0
This package is auto-updated.
Last update: 2024-09-06 07:56:07 UTC
README
默认情况下,使用像 DetailView 这样的小部件创建的多页列表中,Yii2 没有页面大小选择器。这个扩展在不使用 jQuery 的情况下,添加了类似于流行的 JavaScript DataTables 风格的功能。
该扩展易于使用,且完全可定制,以适应您的页面布局。
兼容性
PHP version >=5.6
All modern browsers and IE.
Yii2 versions >=2.0.*
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一
php composer.phar require --prefer-dist olegbolden/yii2-show-n-pages "*"
或者
"olegbolden/yii2-show-n-pages": "*"
将以下内容添加到您的 composer.json
文件的 require 部分。
使用方法
- 第一步是为您的数据提供者指定此小部件提供的实际页面大小
$dataProvider = new ActiveDataProvider([ 'query' => $query, 'pagination' => [ 'pageSize' => PageSizeWidget::getPageSize([ 'section' => 'statistics', 'pageSizes' => [25, 50, 100], ]), ], ]);
'section'
参数指定对应小部件的标识符,因为您的网站上可能有多个地方有不同页面大小的小部件实例,它们有自己的页面设置,因此小部件需要这些标识符来区分它们。如果您只使用一个实例,则可以省略部分标识符,默认为 'main'。
'pageSizes'
参数指定自定义预定义页面大小的集合,如果您对对应数据提供者的默认页面大小不满意。默认为 [10, 25, 50, 100, All],也可以省略。如果您的数据集非常大,并且没有必要在一个页面上显示所有项目,则这非常有用。
- 现在您可以通过以下方式将小部件插入到您的视图代码中
<?= PageSizeWidget::widget($options); ?>
选项
以下列出了一些可用的数组选项
lang
语言设置
'lang' => [ PageSizeWidget::LANG_SHOW => 'Показать', PageSizeWidget::LANG_ENTRIES => 'записей', PageSizeWidget::LANG_ALL => 'Все', ]
section
可选参数,用于区分您网站不同部分的widgets,并为每个设置独立的页面大小设置。
重要的是,这里指定的每个 'section'
必须与上面描述的对应数据提供者分页设置中的 'section'
相同。
'section' => 'statistics'
wrapperClass / innerClass
用于将小部件适配到您页面的样式类。
例如,指定的样式将为以下布局
'wrapperClass' => 'pull-right', 'innerClass' => 'pageSelector'
提供以下布局
<div class="pull-right"> <span class="pageSelector">Show <select name="pageSize"> <option value="10">10</option> ... <option value="1000000">All</option> </select> items</span> </div>