Class kartik\grid\controllers\GridEditedRowController
GridEditedRowController implements the actions for controlling the record edits via the GridView and displaying the last edited row in the kartik\grid\GridView.
The standard CRUD operations have been enhanced to enable the Krajee GridView edited row functionality. When an user
returns back to the GridView index
page from a create
, update
or view
page, the following functionalities are
automatically enabled:
- page automatically scrolls and user is directly led to the specific row last edited
- the last edited row is also specially highlighted
To use this in your application, extend your Controller class from kartik\grid\controllers\GridEditedRowController or use the kartik\grid\controllers\GridEditedRowTrait in your controller class.
For example,
class BookController extends \kartik\grid\controllers\GridEditedRowController {
// your model UPDATE action
public function actionUpdate($id) {
$model = $this->findModel($id);
if ($model->load(Yii::$app->request->post()) && $model->save()) {
Yii::$app->session->setFlash('success', "Updated book # {$id} successfully.");
return $this->redirectIndex($id); // USE this for redirecting to edited row
} else {
return $this->render('update', ['model' => $model, ]);
}
}
}
On your view file (for update or view) - you can create a Cancel button to go back to the edited row, using the back action. For example,
use yii\helpers\Html;
echo Html::a('Cancel', ['back', 'id' => $model->id], ['class' => 'btn btn-primary', 'title' => 'Go back']);
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$action | yii\base\Action|null | The action that is currently being executed. | yii\base\Controller |
$actionParams | array | The parameters bound to the current action. | yii\web\Controller |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component. | yii\base\Component |
$defaultAction | string | The ID of the action that is used when the action ID is not specified in the request. | yii\base\Controller |
$editedRowConfig | array | The configuration for the row being currently edited. | kartik\grid\controllers\GridEditedRowController |
$enableCsrfValidation | boolean | Whether to enable CSRF validation for the actions in this controller. | yii\web\Controller |
$id | string | The ID of this controller. | yii\base\Controller |
$layout | string|null|false | The name of the layout to be applied to this controller's views. | yii\base\Controller |
$module | yii\base\Module | The module that this controller belongs to. | yii\base\Controller |
$modules | yii\base\Module[] | All ancestor modules that this controller is located within. | yii\base\Controller |
$request | yii\web\Request | yii\web\Controller | |
$response | yii\web\Response | yii\web\Controller | |
$route | string | The route (module ID, controller ID and action ID) of the current request. | yii\base\Controller |
$uniqueId | string | The controller ID that is prefixed with the module ID (if any). | yii\base\Controller |
$view | yii\base\View|yii\web\View | The view object that can be used to render views or view files. | yii\base\Controller |
$viewPath | string | The directory containing the view files for this controller. | yii\base\Controller |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\Component |
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
__construct() | yii\base\Controller | |
__get() | Returns the value of a component property. | yii\base\Component |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component |
__set() | Sets the value of a component property. | yii\base\Component |
__unset() | Sets a component property to be null. | yii\base\Component |
actionBack() | Go back to main index page. Use this action as a link button in your other views for cancelling and going back to the index page with the highlighted edited row. | kartik\grid\controllers\GridEditedRowTrait |
actions() | Declares external actions for the controller. | yii\base\Controller |
afterAction() | This method is invoked right after an action is executed. | yii\base\Controller |
asJson() | Send data formatted as JSON. | yii\web\Controller |
asXml() | Send data formatted as XML. | yii\web\Controller |
attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
beforeAction() | This method is invoked right before an action is executed. | yii\web\Controller |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
bindActionParams() | Binds the parameters to the action. | yii\web\Controller |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component |
className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
createAction() | Creates an action based on the given action ID. | yii\base\Controller |
detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
findLayoutFile() | Finds the applicable layout file. | yii\base\Controller |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
getModules() | Returns all ancestor modules of this controller. | yii\base\Controller |
getRoute() | Returns the route of the current request. | yii\base\Controller |
getUniqueId() | Returns the unique ID of the controller. | yii\base\Controller |
getView() | Returns the view object that can be used to render views or view files. | yii\base\Controller |
getViewPath() | Returns the directory containing view files for this controller. | yii\base\Controller |
goBack() | Redirects the browser to the last visited page. | yii\web\Controller |
goHome() | Redirects the browser to the home page. | yii\web\Controller |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component |
init() | Initializes the object. | yii\base\Controller |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
redirect() | Redirects the browser to the specified URL. | yii\web\Controller |
refresh() | Refreshes the current page. | yii\web\Controller |
render() | Renders a view and applies layout if available. | yii\base\Controller |
renderAjax() | Renders a view in response to an AJAX request. | yii\web\Controller |
renderContent() | Renders a static string by applying a layout. | yii\base\Controller |
renderFile() | Renders a view file. | yii\base\Controller |
renderPartial() | Renders a view without applying layout. | yii\base\Controller |
run() | Runs a request specified in terms of a route. | yii\base\Controller |
runAction() | Runs an action within this controller with the specified action ID and parameters. | yii\base\Controller |
setView() | Sets the view object to be used by this controller. | yii\base\Controller |
setViewPath() | Sets the directory that contains the view files. | yii\base\Controller |
trigger() | Triggers an event. | yii\base\Component |
Protected Methods
Method | Description | Defined By |
---|---|---|
bindInjectedParams() | Fills parameters based on types and names in action method signature. | yii\base\Controller |
getQueryParamsCached() | Gets the cached query parameters from session for navigating to the just edited row | kartik\grid\controllers\GridEditedRowTrait |
redirectIndex() | Redirects to index page with cached query params containing the highlighted edited row | kartik\grid\controllers\GridEditedRowTrait |
Events
Event | Type | Description | Defined By |
---|---|---|---|
EVENT_AFTER_ACTION | yii\base\ActionEvent | An event raised right after executing a controller action. | yii\base\Controller |
EVENT_BEFORE_ACTION | yii\base\ActionEvent | An event raised right before executing a controller action. | yii\base\Controller |
Property Details
The configuration for the row being currently edited. This matches the kartik\grid\GridView::$editedRowConfig property and must exactly match the settings you have set in your GridView widget on the index page.
'rowIdGetParam' => 'row', 'gridIdGetParam' => 'grid', 'gridFiltersSessionParam' => 'kvGridFiltersCache', 'highlightClass' => 'kv-row-edit-highlight'
]