public ActionResult BatchSave([FromBody]ICRUDModel<TreeGridProjectData> data)
{
//...
if (data.added != null && data.added.Count() > 0)
{
foreach (var rec in data.added)
{
uAdded.Add(this.Create(rec));
}
}
////Performing update operation
if (data.changed != null && data.changed.Count() > 0)
{
foreach (var rec in data.changed)
{
uChanged.Add(this.Edit(rec));
}
}
//Performing delete operation
if (data.deleted != null && data.deleted.Count() > 0)
{
foreach (var rec in data.deleted)
{
uDeleted.Add(this.Delete(rec.taskID));
}
}
return Json(new { addedRecords = uAdded, changedRecords = uChanged, deletedRecords = uDeleted});
}
public TreeGridProjectData Create(TreeGridProjectData value)
{
//...
}
public TreeGridProjectData Edit(TreeGridProjectData value)
{
//...
}
public TreeGridProjectData Delete(string value)
{
//...
}
|
<ejs-gantt id='RemoteData' treeColumnIndex="0" load="onLoad" height="450px">
<e-data-manager url="/Index?handler=DataSource" batchUrl="/Index?handler=BatchUpdate" adaptor="UrlAdaptor"></e-data-manager>
<e-gantt-editsettings allowEditing="true" allowAdding="true" allowDeleting="true" mode="Dialog"></e-gantt-editsettings>
<e-gantt-taskfields id="taskID" name="taskName" startDate="startDate"
duration="duration" progress="progress" dependency="Predecessor" parentID="parentID">
</e-gantt-taskfields>
</ejs-gantt>
Index.cshtml.cs
public JsonResult OnPostBatchUpdate([FromBody] ICRUDModel<TreeGridProjectData> batchmodel)
{
List<TreeGridProjectData> uAdded = new List<TreeGridProjectData>();
List<TreeGridProjectData> uChanged = new List<TreeGridProjectData>();
List<TreeGridProjectData> uDeleted = new List<TreeGridProjectData>();
//Performing insert operation
if (batchmodel.added != null && batchmodel.added.Count() > 0)
{
foreach (var rec in batchmodel.added)
{
uAdded.Add(this.Create(rec));
}
}
////Performing update operation
if (batchmodel.changed != null && batchmodel.changed.Count() > 0)
{
foreach (var rec in batchmodel.changed)
{
uChanged.Add(this.Edit(rec));
}
}
//Performing delete operation
if (batchmodel.deleted != null && batchmodel.deleted.Count() > 0)
{
foreach (var rec in batchmodel.deleted)
{
uDeleted.Add(this.Delete(rec.taskID));
}
}
return new JsonResult(new { addedRecords = uAdded, changedRecords = uChanged, deletedRecords = uDeleted });
} |