在制作Yii2网站时,我遇到了listview小部件的一些困难。我的前端开发人员说分页容器应该不在项目容器中。这是我的代码。
<?php echo yiiwidgetsListView::widget([
'dataProvider'=>$dataProvider,
'pager'=>[
'hideOnSinglePage'=>true,
// Customzing options for pager container tag
'options' => [
'class' => 'pager-wrapper',
'id' => 'pager-container',
],
],
'itemView'=>'_item',
'summary' => '',
'itemOptions' => ['tag'=>'li', 'class'=>'cam-container'],
'options' => [
'tag'=>'ul',
'class'=>'cam-list row clearfix'
]
])?>
这个listview小部件在HTML
中生成以下代码<ul id="w0" class="cam-list row clearfix">
<li class="cam-container" data-key="34"></li>
<ul id="pager-container" class="pager-wrapper">
</ul>
但我想要的结果是pager-container
将从.cam-list
容器中取出
<ul id="w0" class="cam-list row clearfix">
<li class="cam-container" data-key="34"></li>
</ul>
<ul id="pager-container" class="pager-wrapper">
这是可能的吗?
嗯,我发现我们可以分别渲染它们。在我的例子中,我把它们渲染成
$widget = yiiwidgetsListView::begin([ some code ]);
<ul class="cam-list row clearfix">
<?php echo $widget->renderItems(); ?>
</ul>
<?php echo $widget->renderPager(); ?>
我在我的应用程序中使用了这个解决方案:
<?php echo yiiwidgetsListView::widget([
'dataProvider'=>$dataProvider,
'pager'=>[
'hideOnSinglePage'=>true,
// Customzing options for pager container tag
'options' => [
'class' => 'pager-wrapper',
'id' => 'pager-container',
],
],
'itemView'=>'_item',
'summary' => '',
'layout' => "{summary}n<ul class='cam-list row clearfix'>{items}</ul>n{pager}",
'itemOptions' => ['tag'=>'li', 'class'=>'cam-container'],
])?>
对于这个解决方案,我使用布局在项目周围添加<ul>
,并在它之后渲染pager。