Hi,
I have a grid like this:
@(Html.EJ().Grid("JobsGrid")
.AllowPaging()
//.ToolbarSettings(toolbar => { toolbar.ShowToolbar().ToolbarItems(items => { items.AddTool(ToolBarItems.Search); }); })
.AllowFiltering()
.EditSettings(edit => { edit.AllowAdding().AllowDeleting().AllowEditing().ShowDeleteConfirmDialog(); })
.Columns(col =>
{
col.Field("Id").HeaderText("ID").IsPrimaryKey(true).Visible(false).Add();
col.Field("Title").HeaderText("Name").ValidationRules(v => v.AddRule("required", true)).Width(300).Add();
col.Field("ExternalId").HeaderText("External Id").TextAlign(TextAlign.Right).Add();
col.Field("JobTypeId").HeaderText("Job Type").ValidationRules(v => v.AddRule("required", true)).Width(150).ForeignKeyField("JobTypeId").ForeignKeyValue("Name").DataSource(ViewBag.JobTypes).Add();
col.Field("ADP").HeaderText("ADP").TextAlign(TextAlign.Right).Add();
col.Field("Deadline").HeaderText("Deadline").TextAlign(TextAlign.Right).Add();
col.Field("ActualHours").HeaderText("Actual").TextAlign(TextAlign.Right).Add();
col.Field("PlannedHours").HeaderText("Planned").TextAlign(TextAlign.Right).AllowEditing(false).Add();
col.Field("TotalHours").HeaderText("Total").TextAlign(TextAlign.Right).AllowEditing(false).Add();
col.Field("OrderedHours").HeaderText("Ordered").TextAlign(TextAlign.Right).Add();
col.Field("Color").HeaderText("Color").ValidationRules(v => v.AddRule("required", true)).Width(75).Add();
})
.Datasource(ds => ds.URL("Jobs/GetData").UpdateURL("Jobs/Update").InsertURL("Jobs/Insert").RemoveURL("Jobs/Delete").Adaptor(AdaptorType.UrlAdaptor))
.ToolbarSettings(toolbar =>
{
toolbar.ShowToolbar().ToolbarItems(items =>
{
items.AddTool(ToolBarItems.Add);
items.AddTool(ToolBarItems.Edit);
items.AddTool(ToolBarItems.Delete);
items.AddTool(ToolBarItems.Update);
items.AddTool(ToolBarItems.Cancel);
});
})
)
And the action Jobs/GetData looks like this:
public JsonResult GetData(DataManager dm)
{
var result = new DataResult();
var jobs = new List();
var operation = new DataOperations();
var today = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
foreach (var job in db.Jobs.Include(j => j.EmployeeJobs).ToList())
{
decimal planned = 0;
foreach(var employeeJobs in job.EmployeeJobs)
{
planned += (decimal)Utils.IntersactionWeekDays(today, DateTime.MaxValue, employeeJobs.StartTime, employeeJobs.EndTime) * 8;
}
jobs.Add(new JobModel()
{
Id = job.Id,
Title = job.Title,
ExternalId = job.ExternalId,
JobTypeId = job.JobTypeId,
ADP = job.ADP,
Deadline = job.Deadline,
ActualHours = job.ActualHours,
OrderedHours = job.OrderedHours,
Color = job.Color,
PlannedHours = planned,
TotalHours = job.ActualHours + 0
});
}
result.result = jobs;
result.count = jobs.Count();
if (dm.Skip > 0)
result.result = operation.PerformSkip(result.result, dm.Skip);
if (dm.Take > 0)
result.result = operation.PerformTake(result.result, dm.Take);
return Json(result, JsonRequestBehavior.AllowGet);
}
How can I make the filtering working in this case? Please note that I'm using Entity Framework.
Regards,
Cornel.