Pagination โ
Enabling Pagination โ
Chain showPerPage() on PowerGrid::footer() to enable the paginator and the per-page dropdown.
use PowerComponents\LivewirePowerGrid\PowerGridComponent;
use PowerComponents\LivewirePowerGrid\Facades\PowerGrid;
class ProductTable extends PowerGridComponent
{
public function setUp(): array
{
return [
PowerGrid::footer()
->showPerPage(perPage: 10, perPageValues: [0, 50, 100, 500]),
];
}
}$perPage is the default page size (default 10). $perPageValues is the dropdown (default [10, 25, 50, 100, 0]). 0 is "show all".
TIP
If $perPage is missing from $perPageValues, PowerGrid adds it.
Config max_per_page (default 1000) caps rows fetched in one request. Set 0 to disable the cap. See Max Per Page.
Disabling Pagination โ
Without showPerPage(), the per-page dropdown is hidden but rows are still paginated, 10 per page. To render every row on one page, use showPerPage(0, [0]). max_per_page still caps the rows.
use PowerComponents\LivewirePowerGrid\PowerGridComponent;
use PowerComponents\LivewirePowerGrid\Facades\PowerGrid;
class ProductTable extends PowerGridComponent
{
public function setUp(): array
{
return [
PowerGrid::footer()
->showPerPage(perPage: 0, perPageValues: [0])
->showRecordCount(mode: 'full'),
];
}
}Record Count โ
Chain showRecordCount() on PowerGrid::footer().
| Mode | Description |
|---|---|
| full | Full sentence: Showing 1 to 10 of 100 Results |
| short | Short: 1 - 10 โ 100 |
| min | Minimal: 1 - 10 |
use PowerComponents\LivewirePowerGrid\PowerGridComponent;
use PowerComponents\LivewirePowerGrid\Facades\PowerGrid;
class ProductTable extends PowerGridComponent
{
public function setUp(): array
{
return [
PowerGrid::footer()
->showRecordCount(mode: 'full'),
];
}
}URL Page Parameter โ
pageName() changes the query-string key (default page). Use it when two tables share a page so their paginators do not collide. Non-alphanumeric characters are stripped; an empty result falls back to page.
The example below yields ?productPage=2&userPage=5.
use PowerComponents\LivewirePowerGrid\PowerGridComponent;
use PowerComponents\LivewirePowerGrid\Facades\PowerGrid;
class ProductTable extends PowerGridComponent
{
public function setUp(): array
{
return [
PowerGrid::footer()
->pageName('productPage'),
];
}
}use PowerComponents\LivewirePowerGrid\PowerGridComponent;
use PowerComponents\LivewirePowerGrid\Facades\PowerGrid;
class UserTable extends PowerGridComponent
{
public function setUp(): array
{
return [
PowerGrid::footer()
->pageName('userPage'),
];
}
}<div>
<livewire:product-table />
<livewire:user-table />
</div>Custom Pagination Component โ
Chain pagination() on PowerGrid::footer() and pass a view path. The view receives $perPage and $perPageValues.
use PowerComponents\LivewirePowerGrid\PowerGridComponent;
use PowerComponents\LivewirePowerGrid\Facades\PowerGrid;
class ProductTable extends PowerGridComponent
{
public function setUp(): array
{
return [
PowerGrid::footer()
->showPerPage(25)
->showRecordCount()
->pagination(viewPath: 'components.pagination'),
];
}
}