|
<GridEvents OnActionComplete="OnActionComplete" TValue="Order"></GridEvents> |
|
public async Task OnActionComplete(ActionEventArgs<Order> args)
{
if(args.RequestType.Equals(Action.Save) && args.Action == "Add")
{
await Grid.GoToPage(PageNumber + 1);
}
}
...
public static double PageNumber { get; set; }
public class CustomAdaptor : DataAdaptor
{
public bool flag = false;
public Order PrimarkKeyValue { get; set; }
public override object Read(DataManagerRequest dm, string key = null)
{
IEnumerable<Order> DataSource = Orders;
...
if (dm.Sorted != null && dm.Sorted.Count > 0)
{
// Sorting
DataSource = DataOperations.PerformSorting(DataSource, dm.Sorted);
}
if (flag)
{
var index = DataSource.IndexOf<Order>(PrimarkKeyValue);
PageNumber = index / dm.Take;
flag = false;
}
...
return dm.RequiresCounts ? new DataResult() { Result = DataSource, Count = count } : (object)DataSource;
}
// Performs Insert operation
public override object Insert(DataManager dm, object value, string key)
{
flag = true;
PrimarkKeyValue = (value as Order);
Orders.Insert(Orders.Count(), value as Order);
return value;
}
...
}
|