现在我在搜索功能中设置了静态页面大小,但现在我需要为用户创建下拉列表以从前端更改页面大小。例如像 10,20,50,100。
我得到了代码,但它适用于 yii 以前的版本。
如果我必须这样做,我将使用以下方法。
layout
,如果您想要在summary
文本和items
列表之间或在 gridview 之前添加它,您可以调整gridview 选项内的下拉列表。像这张图片,你可以用 div 包裹它来自己调整 CSS。要做的主要事情是id
将下拉列表包含到filterSelector
选项中,以便每次过滤 gridview 时,下拉值也会被提交,并且每当您更改下拉列表时也是如此。
您的 GridView 将如下所示
GridView::widget([
'dataProvider' => $dataProvider,
'layout'=>'{summary}'.Html::activeDropDownList($searchModel, 'myPageSize', [1 => 10, 2 => 20, 50 => 50, 100 => 100],['id'=>'myPageSize'])."{items}<br/>{pager}",
'filterModel' => $searchModel,
'filterSelector' => '#myPageSize',
'columns'=>[
// your column configurations.......
]
]);
在 searchModel 中声明一个公共属性
public $myPageSize
将该属性添加到safe
您的规则中searchModel
[['myPageSize'],'safe']
然后search()
在SearchModel
您正在使用的相对内部更新您的方法GridView
。您应该使用定义的新属性分配inside的pageSize
选项,但请确保在语句之后添加此行。query
$dataProvider
$this->load($params)
见下文
$dataProvider->pagination->pageSize = ($this->myPageSize !== NULL) ? $this->myPageSize : 10;`
在这里,我们将默认页面大小设置为等于我们创建的下拉列表中的最小选项,否则在您更改下拉列表时它会更新。
现在尝试更改下拉列表,您会看到它起作用。希望这可以帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句