<SfGrid TValue="Order" AllowSorting="true" AllowFiltering="true" AllowPaging="true">
<SfDataManager @ref="DataManagerRef" AdaptorInstance="@typeof(CustomAdaptor)" Adaptor="Adaptors.CustomAdaptor"></SfDataManager>
. . . . . . .
</SfGrid>
@code{
public static List<Order> Orders { get; set; }
SfDataManager DataManagerRef { get; set; }
. . . .
public async Task Data()
{
//generate our own query and return data.
object t = await DataManagerRef.ExecuteQuery<Order>(new Query().Skip(5).Take(4));
//deserialize the object to List of Objects.
var data = JsonConvert.DeserializeObject<List<Order>>(JsonConvert.SerializeObject(t));
//to fetch the data externally like stand alone datamanager component
}
// Implementing custom adaptor by extending the DataAdaptor class
public class CustomAdaptor : DataAdaptor
{
// Performs data Read operation
public override object Read(DataManagerRequest dm, string key = null)
{
IEnumerable<Order> DataSource = Orders;
int count = DataSource.Cast<Order>().Count();
DataSource = DataOperations.Execute<Order>(DataSource, dm);
return dm.RequiresCounts ? new DataResult() { Result = DataSource, Count = count } : (object)DataSource;
}
}
|