PowerGrid Events โ
PowerGrid listens for Livewire events suffixed with $tableName. Set a unique table name so events hit the right instance.
Predefined Events โ
Plugin listeners are collected at runtime: each plugin method with #[On] is mapped in getListeners(). Core listeners (toggleColumn, refresh, softDeletes, multiSelectChanged) use #[On] on the table itself. You do not register either by hand.
| Event | Handler |
|---|---|
pg:datePicker-{tableName} | Flatpickr plugin |
pg:editable-{tableName} | Editable plugin |
pg:toggleable-{tableName} | Toggleable plugin |
pg:multiSelect-{tableName} | multiSelectChanged |
pg:toggleColumn-{tableName} | toggleColumn |
pg:eventRefresh-{tableName} | refresh |
pg:softDeletes-{tableName} | softDeletes |
Editable, Toggleable, and Export call onPluginUpdated() on the table. See Editing Data.
Bulk Actions Events โ
Adding Custom Events โ
Override getListeners() and merge parent::getListeners() so plugin events stay registered.
use PowerComponents\LivewirePowerGrid\PowerGridComponent;
class ProductTable extends PowerGridComponent
{
public function getListeners(): array
{
return [
'edit-product' => 'editProduct',
'delete-product' => 'deleteProduct',
'clicked-on-product' => 'clickedOnProduct',
...parent::getListeners()
];
}
}#[On] methods on the table (pg:eventRefresh-โฆ, pg:toggleColumn-โฆ, pg:softDeletes-โฆ, pg:multiSelect-โฆ) keep working even if you omit parent::getListeners(). Plugin events (pg:editable-โฆ, pg:toggleable-โฆ, pg:datePicker-โฆ) do not.
Dispatching Events โ
Dispatch the same way as any Livewire event:
use PowerComponents\LivewirePowerGrid\PowerGridComponent;
class ProductTable extends PowerGridComponent
{
public function submit()
{
$this->dispatch('pg:eventRefresh-ProductTable');
}
}