Skip to content

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.

EventHandler
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 โ€‹

See Handling the Bulk Event.

Adding Custom Events โ€‹

Override getListeners() and merge parent::getListeners() so plugin events stay registered.

phpapp/Livewire/ProductTable.php
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:

phpapp/Livewire/ProductTable.php
use PowerComponents\LivewirePowerGrid\PowerGridComponent;

class ProductTable extends PowerGridComponent
{
    public function submit()
    {
        $this->dispatch('pg:eventRefresh-ProductTable');
    }
}

Created By Luan Freitas and @DanSysAnalyst