public QueryBuilderRule ImportRules = new QueryBuilderRule
{
Condition = "or",
Rules = new List<RuleModel>{
new RuleModel { Field = "EmployeeID", Value = "1001", Operator = "notequal" },
new RuleModel { Field = "Country", Value = "England", Operator = "equal" }
}
};
private void setRules()
{
QueryBuilderObj.SetRules(ImportRules);
}
@using Syncfusion.EJ2.Blazor.QueryBuilder
@using Syncfusion.EJ2.Blazor.Buttons
<EjsQueryBuilder Columns="@Columns" DataSource="@EmployeeDetails" @ref="QueryBuilderObj" Rule="@ImportRules"></EjsQueryBuilder>
<EjsButton CssClass="e-primary" @onclick="setRules">Set Rules</EjsButton>
<EjsButton CssClass="e-primary" @onclick="getSql">Get SQL</EjsButton>
@code {
EjsQueryBuilder QueryBuilderObj;
public List<QueryBuilderColumn> Columns = new List<QueryBuilderColumn>
{
new QueryBuilderColumn{ Field = "EmployeeID", Label = "Employee ID", Type = "number" },
new QueryBuilderColumn{ Field = "FirstName", Label = "First Name", Type = "string" },
new QueryBuilderColumn{ Field = "TitleOfCourtesy", Label ="Title of Courtesy", Type = "boolean"},
new QueryBuilderColumn{ Field = "Title", Label = "Title", Type = "boolean", Values = new List<string>{ "Mr.", "Mrs." } },
new QueryBuilderColumn{ Field = "HireDate", Label = "Hire Date", Type = "date", Format = "MM/dd/yyyy"},
new QueryBuilderColumn{ Field = "Country", Label = "Country", Type="string"},
new QueryBuilderColumn{ Field = "City", Label = "City", Type = "string"}
};
public List<Employee> EmployeeDetails = new List<Employee>
{
new Employee{ FirstName = "Martin", EmployeeID = "1001", Country = "England", City = "Manchester", HireDate = "23/04/2014" },
new Employee{ FirstName = "Benjamin", EmployeeID = "1002", Country = "England", City = "Birmingham", HireDate = "19/06/2014" },
new Employee{ FirstName = "Stuart", EmployeeID = "1003", Country = "England", City = "London", HireDate = "04/07/2014"},
new Employee{ FirstName = "Ben", EmployeeID = "1004", Country = "USA", City = "California", HireDate = "15/08/2014" },
new Employee{ FirstName = "Joseph", EmployeeID = "1005", Country = "Spain", City = "Madrid", HireDate = "29/08/2014" }
};
public class Employee
{
public string FirstName { get; set; }
public string EmployeeID { get; set; }
public string Country { get; set; }
public string City { get; set; }
public string HireDate { get; set; }
}
protected QueryBuilderRule ImportRules = new QueryBuilderRule()
{
Condition = "and",
Rules = new List<RuleModel>()
{
new RuleModel { Label="FirstName", Field="FirstName", Type="strig", Operator="equal", Value = "Martin" },
new RuleModel { Label="EmployeeID", Field="EmployeeID", Type="string", Operator="equal", Value = "1001" }
}
};
protected void setRules()
{
QueryBuilderObj.SetRulesFromSql("FirstName LIKE ('%Ch%')");
}
protected async void getSql()
{
RuleModel actRule = await QueryBuilderObj.GetRules();
RuleModel rule = await QueryBuilderObj.GetValidRules(actRule);
string sql = await QueryBuilderObj.GetSqlFromRules(rule); // returns the original ImportRules and not the setRules
}
}
|