Advanced search is the ability to specify an unlimited number of predicates using the collection of the relevant table columns, and an operator type based on the data type of each.
Other names for this could be dynamic search, dynamic filters, structured filters, etc.
Our implementation would naturally make use of the columns collection defined for the datatable, in conjunction with a database table of operator types.
The filters interface should be displayed somewhere between the datatable toolbar buttons and the datatable itself, and therefore should be injected into a dedicated div element which would be added to the datatable Dom.
The filter usage should be using the ajax.data object of the datatable, by adding additional parameters to the server side call.
The server side should know to identify these special parameters and add them accordingly to the columns XML parameter sent to the database procedure.
The procedure would make use of the operator types table to parse the XML parameter and generate the search predicates.
The advanced search should also support filtering from URL parameters
Possibly something similar to "fieldName[operator]=value" to keep close to native datatable conventions (column [search] and such)
Advanced search is the ability to specify an unlimited number of predicates using the collection of the relevant table columns, and an operator type based on the data type of each.
Other names for this could be dynamic search, dynamic filters, structured filters, etc.
Example implementations:
https://github.com/evoluteur/structured-filter
https://github.com/EitanBlumin/DynamicFilters
Our implementation would naturally make use of the columns collection defined for the datatable, in conjunction with a database table of operator types.
The filters interface should be displayed somewhere between the datatable toolbar buttons and the datatable itself, and therefore should be injected into a dedicated div element which would be added to the datatable Dom.
The filter usage should be using the ajax.data object of the datatable, by adding additional parameters to the server side call.
https://datatables.net/reference/option/ajax.data
The server side should know to identify these special parameters and add them accordingly to the columns XML parameter sent to the database procedure.
The procedure would make use of the operator types table to parse the XML parameter and generate the search predicates.
The advanced search should also support filtering from URL parameters Possibly something similar to "fieldName[operator]=value" to keep close to native datatable conventions (column [search] and such)