现在我已经在我的搜索功能中设置了静态页面大小,但现在我需要为用户创建下拉列表以从前端更改页面大小。例如10,20,50,100。
我得到了代码,但它是yii以前的版本。
如果我必须这样做,我将使用以下方法。
layout
文本和summary
列表之间或在gridview之前添加它,可以调整gridview的items
选项内的下拉列表。像这个图像你可以用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.......
]
]);
public $myPageSize
[['myPageSize'],'safe']
search()
的相对SearchModel
中更新你的GridView
方法。您应该在pageSize
中指定query
的$dataProvider
选项并定义新属性,但请确保在$this->load($params)
语句后添加此行。
见下文
$dataProvider->pagination->pageSize = ($this->myPageSize !== NULL) ? $this->myPageSize : 10;`
这里我们将默认页面大小设置为我们创建的下拉列表中的最小选项,否则在更改下拉列表时会更新。
现在尝试更改下拉列表,您将看到它正常工作。希望这会有所帮助