Dear all,
A did not find any solutions how to effectively parse the filter value query at server side (C# Core, MSSQL).
I receive the following:
(startswith(tolower(UserName),'anybody')) and (CreateDate lt datetime'2021-10-12T22:00:01.000Z'))
|
actionBegin(args) {
if (args.requestType == "filtering") {
var grid = document.getElementById("Grid").ej2_instances[0];
var whereQuery = [];
var currentqueries = grid.getDataModule().generateQuery().queries
for (var i = 0; i < currentqueries.length; i++) {
if (currentqueries[i].fn == "onWhere") {
var filterquery = currentqueries[0].e;
if (currentqueries[0].e.isComplex) {
var predicates = currentqueries[0].e.predicates;
for (var j = 0; j < predicates.length; j++) {
if (predicates[j].isComplex) {
for (var k = 0; k < predicates[j].predicates.length; k++) {
if (predicates[j].predicates[k].isComplex) {
var x = predicates[j].predicates[k].predicates;
for (var l = 0; l < x.length; l++) {
whereQuery.push({ field: x[l].field, operator: x[l].operator, value: x[l].value })
}
} else {
whereQuery.push({ field: predicates[j].predicates[k].field, operator: predicates[j].predicates[k].operator, value: predicates[j].predicates[k].value })
}
}
} else {
whereQuery.push({ field: predicates[j].field, operator: predicates[j].operator, value: predicates[j].value })
}
}
} else {
whereQuery.push({ field: filterquery.field, operator: filterquery.operator, value: filterquery.value })
}
}
}
grid.query = new ej.data.Query().addParams('FilterQueries', whereQuery);
}
}
|
|
[HomeControllers.cs]
public ActionResult UrlDatasource(TestDm dm)
{
---
// get the filter query details and generate the SQL query as you want
if (dm.Params != null && dm.Params.FilterQueries != null)
{
var filterdetails = dm.Params.FilterQueries;
}
----
return dm.RequiresCounts ? Json(new { result = DataSource, count = count }) : Json(DataSource);
}
public class TestDm : DataManagerRequest
{
public string[] filterValue { get; set; }
public ParamObject Params { get; set; }
}
public class ParamObject
{
public List<FilterQuery> FilterQueries { get; set; }
}
public class FilterQuery
{
public string Field { get; set; }
public string Operator { get; set; }
public string Value { get; set; }
}
|