Skip to main content

Action Types and Passed Parameters

  • 5 minutes to read

When you use the VerticalGrid in custom binding mode, provide the extension with data manually upon each request. The VerticalGrid sends requests to the server using callbacks (see Using Callbacks). Each callback type should be associated with a handling Action in a Controller. You can define the callback routing logic by using specific properties exposed by the VerticalGrid. This topic provides information about the available callback routing properties of the VerticalGrid, and specifies which particular Actions should be handled in custom binding mode.

Callback Routing Properties

In general, the VerticalGrid has the following properties that allow you to define callback routing logic for different actions. The table below describes which properties and corresponding Actions relate to the custom binding implementation of the VerticalGrid.

Name

Description

Required for custom data binding?

Action accepts binding parameter(s)?

GridSettingsBase.CallbackRouteValues

Specifies the names of the Controller and the Action that handle standard VerticalGrid callbacks.

The VerticalGrid automatically updates (re-renders) itself after each standard callback, so it is necessary to provide the extension with data during standard callback processing.

Handling the specified Action is essential to implementing the VerticalGrid’s custom data binding; no specific custom binding parameter is automatically passed to the Action.

Yes

No

VerticalGridSettings.CustomBindingRouteValuesCollection

Specifies the names of Controllers and Actions that handle callbacks related to VerticalGrid data operations such as paging, sorting and filtering.

Handling all or some of these data operations is essential to implement the VerticalGrid’s custom data binding. Operation-specific parameters are automatically passed to the specified Action(s).

Yes

Yes

GridSettingsBase.CustomActionRouteValues

Specifies the names of the Controller and Action that handle custom callbacks initiated by the client MVCxClientVerticalGrid.PerformCallback method.

The VerticalGrid automatically updates (re-renders) itself after this custom callback, so it is necessary to provide the extension with data during callback processing.

If the client MVCxClientVerticalGrid.PerformCallback method is used in your project, it is essential to handle the specified Action to implement the VerticalGrid’s custom data binding. The specified Action only accepts a parameter passed with the clientMVCxClientVerticalGrid.PerformCallback method. No specific custom binding parameter is automatically passed to the Action.

Only if the client MVCxClientVerticalGrid.PerformCallback method is manually called on the client side.

No

GridSettingsBase.CustomDataActionRouteValues

Specifies the names of the Controller and the Action that handle custom data callbacks initiated by the client MVCxClientVerticalGrid.GetValuesOnCustomCallback method.

The VerticalGrid does not automatically update (re-render) itself after this custom data callback, so it is not necessary to provide the extension with data during callback processing.

Handling the specified Action is not required for implementing the VerticalGrid’s custom data binding. No specific custom binding parameter is automatically passed to the Action.

No

No

Action Types and Parameters that are Specific to Custom Binding

The VerticalGridSettings.CustomBindingRouteValuesCollection property allows you to assign particular handling Actions for three data operations – paging, sorting and filtering — which are specifically exposed to be handled in a custom manner to implement the custom data binding of the VerticalGrid. These operations are identified by the values of the VerticalGridOperationType enumeration. The table below lists the available data operation types, and provides additional information on how to assign and declare Actions that handle these operations.

Operation Type

Description

Syntax to Assign and Declare Action

Parameters Passed to Action

VerticalGridOperationType.Paging

An operation of this type is initiated if the paging-related state of the VerticalGrid is changed. For instance, an end-user moves to another VerticalGrid page (by clicking a pager navigation button or page number button) or changes the VerticalGrid’s page size (using the pager’s page size combo box).

Partial View Code:

@Html.DevExpress().VerticalGrid( settings => { … settings.CustomBindingRouteValuesCollection.Add( VerticalGridOperationType.Paging, new { Controller = “MyController”, Action = “MyPagingAction” } ); …

Controller Code:

public ActionResult MyPagingAction(VerticalGridPagerState pager) {}

VerticalGridOperationType.Sorting

An operation of this type is initiated if the sorting-related state of the VerticalGrid is changed. For instance, an end-user sorts a row by clicking its Row Header.

Note that a regular click on a row header clears the sort settings on other rows. To preserve the existing sort settings of other rows, an end-user can hold the SHIFT key down while clicking. This can be useful when sorting against multiple rows.

Partial View Code:

@Html.DevExpress().VerticalGrid( settings => { … settings.CustomBindingRouteValuesCollection.Add( VerticalGridOperationType.Sorting, new { Controller = “MyController”, Action = “MySortingAction” } ); …

Controller Code:

public ActionResult MySortingAction(VerticalGridRowState row, bool reset) {}

  • row of type VerticalGridRowState

    Represents the current state of the row related to the performed sort operation.

     

  • reset of type Boolean

    Determines whether the performed sort operation requires a reset of the previous sorting state.

    true if the SHIFT key was not pressed during the performed sort operation and the previous sorting state should be reset;

    false if the sort operation was performed with the SHIFT key pressed and the previous sorting state should be preserved.

VerticalGridOperationType.Filtering

An operation of this type is initiated if the filtering-related state of the VerticalGrid is changed.

An end-user can apply a filter condition to a single row - by using a row’s header filter dropdown or by typing in the search panel.

Or an end-user can filter multiple rows at once - by using the built-in filter builder.

Partial View Code:

@Html.DevExpress().VerticalGrid( settings => { … settings.CustomBindingRouteValuesCollection.Add( VerticalGridOperationType.Filtering, new { Controller = “MyController”, Action = “MyFilteringAction” } );

Controller Code:

public ActionResult MyFilteringAction(VerticalGridFilteringState filteringState) {}

  • filteringState of type VerticalGridFilteringState

    Represents the current state of the applied filter (contains the filter expression and the affected row/rows).

Note: When implementing the VerticalGrid’s custom data binding, the DevExpressEditorsBinder must be used instead of the default model binder to correctly transfer values from DevExpress editors back to the corresponding data model fields. See the Binding to Model section in the Binding Data Editors to Data topic for more details on how to specify the DevExpressEditorsBinder as a model binder.

See Also