在Sonata Admin Bundle中,您有一个列表视图,您可以在其中添加要在表格中显示的字段。
在表格底部,您可以获得结果和分页数量。我喜欢每页的分页和项目。但我想在页面加载时显示所有项目。因此,所有项目都显示在页面上,但您仍然可以选择减少每页的结果数量。
问题是我不知道如何做到这一点。有人可以帮我上路吗?
答案 0 :(得分:1)
实际上,有可能做到。
你有EntityAdmin
到
a)定义每页可能的"结果列表"值。
现在是
protected $perPageOptions = array(16, 32, 64, 128, 192);
所以最简单的解决方案可能只是设置一个新的真正大数字,敌人的例子
protected $perPageOptions = array(16, 32, 64, 128, 192, 1000000);
但是如果你想真正做到"所有",那么你必须做
protected $perPageOptions = array(16, 32, 64, 128, 192, 'All');
然后
2)重新定义方法EntityAdmin::buildDatagrid()
以处理此'All'
的值$filterParameters['_per_page']
答案 1 :(得分:1)
在SonataAdmin 3.x中,默认情况下具有所有行,您需要执行以下操作:
1-将_per_page =全部添加到$datagridValues
:
protected $datagridValues = array(
'_sort_order' => 'ASC',
...
'_per_page' => 'All',
);
2-全部添加到$ perPageOptions:
protected $perPageOptions = [16, 32, 64, 128, 192, 'All'];
3-将$ maxPerPage设置为全部:
protected $maxPerPage = 'All';
答案 2 :(得分:0)
class YourAdmin extends AbstractAdmin
{
protected $perPageOptions = [64, 128, 256, 'All'];
protected $datagridValues = [
'_per_page' => 'All',
];
protected $maxPerPage = 'All';
...
}
如果您发现$ maxPerPage变量是奇怪的或多余的,请在sonata-project dot org上问他@author Thomas Rabaix thomas.rabaix