Editor 2.5 and ColumnControl 1.1

Sunday 17th August, 2025
By Allan Jardine

I'm delighted to announce the side-by-side release of Editor 2.5.0 and ColumnControl 1.1.0. Both are progression releases, building on the solid foundation of what has gone before. They each introduce new features as well as general improvements and fixes. In this post, I'll cover the main new features.

Server-side processing

First, let's look at why these two pieces of software were released at the same time - ColumnControl now has support for server-side processing, and the Editor server-side libraries have full support for this mode.

If you aren't yet familiar with server-side processing in DataTables, it is a mode of operation where the majority of data operations are handed off to a server-side program (typically an SQL engine), which is optimised for search, ordering and paging, replying with only the data to be displayed for each page. This allows the table to readily display millions of rows without needing to send the full data set to the client-side.

ColumnControl's support for server-side processing boils down to the addition of extra data (the filters to apply) to the request DataTables will make for each page of data to display. It is then up to the server-side script to correctly apply those filters. The parameters sent for ColumnControl's filtering are fully documented, allowing implementation with any server-side script.

The server-side libraries we provide for Editor (PHP, Node.js and .NET) have full support for DataTables' server-side processing mode, and that now extends to ColumnControl's filtering abilities. For text based inputs (e.g. searchText) this is automatic. For the list search (searchList) you can tell the software how to get the full list of options to display as described here.

Examples

The Editor 2.5 suite of examples includes demonstrations of ColumnControl being used with server-side processing:

These examples are available for PHP, Node.js and .NET from the Editor download page.

Editor 2.5

To jump in with Editor:

The client-side updates for Editor 2.5 are relatively small, but nonetheless welcome, making life for you, the developers using Editor, easier and development faster (after all, that is what it is all about!).

DataTables recently had a ajax.submitAs option added and Editor 2.5.0 introduces the same option (ajax.submitAs). With this parameter, you can now easily choose to have the Ajax data submitted to the server as a JSON string, or as HTTP parameters (default). The advantage of JSON is that it can be easier to parse the data structure, and (limited) type information is preserved. This option will primarily be of interest if you are implementing your own server-side code for Editor.

The inlineCreate() now has the ability to be inserted anywhere in the visible table through the use of a row-selector - this can be particularly useful if you want to give the end user the ability to duplicate a row, as it can show the new inputs next to the row that is being duplicated.

Furthermore, the Typescript integration for Editor has been improved, with the fields array being fully typed now.

On the server-side, the server-side libraries we provide (PHP, Node.js and .NET) now have conditional validators through a dependsOn() method for the validation options. A conditional validator is a regular validation method which is applied only when a condition (typically a value from another field) is met. This is particularly useful for dependent fields (dependent()). The server-side documentation has a full description an example (PHP, Node.js, .NET).

There are other additions and rounding off of the API and options available for Editor and the server-side libraries as well. Please refer to the release notes for full details.

ColumnControl 1.1.0

The main change in ColumnControl has, of course, been server-side processing, but there are other changes and additions as well:

ColumnControl now has a full suite of buttons for integration with RowGroup. With this, the end user can dynamically control what grouping to apply to a DataTable. Examples are available in the ColumnControl example suite.

With date and time search (searchDateTime), it is now possible to apply a "mask" to have the filter apply to only a specific part of the date/time. This can be useful if you want to allow a quick date search, but have a date and time value. There is an example available here.

There are now API methods that can be used to control the searchList content type. Specifically, when the data in the table changes, you might wish to call columns().columnControl.searchList() to make sure that the list of options is up to date with the data in the table.

As with Editor, for full details for changes and additions to ColumnControl, please refer to the release notes.

Feedback

Feedback is always welcome! Please drop me a message in the forum to share how you are using Editor, ColumnControl, or any of the other DataTables software. Ideas for future enhancements are very much encouraged.