EitanBlumin / CRUDE-ASP

Low Code Application Generator in Classic ASP, with MSSQL Database, Bootstrap, Fontawesome, and jQuery. Based on the AdminLTE web template.
https://git.eitanblumin.com/CRUDE-ASP/
Mozilla Public License 2.0
24 stars 13 forks source link

Advanced search implementation #103

Open EitanBlumin opened 5 years ago

EitanBlumin commented 5 years ago

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)