|
GridFeatures.cshtml
<ej-grid id="FlatGrid" allow-paging="true">
<e-datamanager json="(IEnumerable<object>)ViewBag.datasource" batch-url="/Grid/BatchUpdate" adaptor="remoteSaveAdaptor" />
<e-edit-settings allow-adding="true" allow-editing="true" allow-deleting="true" edit-mode="@(EditMode.Batch)"></e-edit-settings>
<e-toolbar-settings show-toolbar="true" toolbar-items="@(new List<string>() {"add","edit","delete","update","cancel" })"></e-toolbar-settings>
<e-columns>
<e-column field="OrderID" header-text="Order ID" is-primary-key="true" validation-rules='new Dictionary<string, object>() { {"required",true}, {"number",true} }' text-align="Right" width="75"></e-column>
. . .
</e-columns>
</ej-grid>
GridController:-
public ActionResult BatchUpdate([FromBody] submitvalue myObject)
{
if (myObject.Changed != null && myObject.Changed.Count > 0)
{
foreach (var temp in myObject.Changed)
{
var ord = temp;
Order val = orddata.Where(or => or.OrderID == ord.OrderID).FirstOrDefault();
val.OrderID = ord.OrderID;
val.EmployeeID = ord.EmployeeID;
val.CustomerID = ord.CustomerID;
val.Freight = ord.Freight;
val.OrderDate = ord.OrderDate;
val.ShipCity = ord.ShipCity;
}
}
if (myObject.Added != null && myObject.Added.Count > 0)
{
foreach (var temp in myObject.Added)
{
orddata.Insert(0, temp);
}
}
if (myObject.Deleted != null && myObject.Deleted.Count > 0)
{
foreach (var temp in myObject.Deleted)
{
orddata.Remove(orddata.Where(or => or.OrderID == temp.OrderID).FirstOrDefault());
}
}
var data = orddata;
return Json(data);
}
public class submitvalue
{
public List<Order> Added { get; set; }
public List<Order> Changed { get; set; }
public List<Order> Deleted { get; set; }
public object Key { get; set; }
} |