@using Syncfusion.Blazor
@using Syncfusion.Blazor.Data
@using Syncfusion.Blazor.Grids
<SfGrid TValue="Order" AllowPaging="true">
<SfDataManager Url="https://ej2services.syncfusion.com/production/web-services/api/Orders" Adaptor="Adaptors.WebApiAdaptor"></SfDataManager>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" IsPrimaryKey="true" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(Order.CustomerID) HeaderText="Customer Name" Width="150"></GridColumn>
<GridColumn Field=@nameof(Order.OrderDate) HeaderText=" Order Date" Format="d" Type="ColumnType.Date" TextAlign="TextAlign.Right" Width="130"></GridColumn>
<GridColumn Field=@nameof(Order.Freight) HeaderText="Freight" Format="C2" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn HeaderText="Customer Name" Format="C2" TextAlign="TextAlign.Right" Width="120">
</GridColumn>
</GridColumns>
</SfGrid>
@code{
public class Order
{
public int? OrderID { get; set; }
public string CustomerID { get; set; }
public DateTime? OrderDate { get; set; }
public double? Freight { get; set; }
}
}
@((context as Rate).rateClass.RateClassDesc )
|
[HttpGet]
public async Task<object> Get(int? code)
{
if (order.Count == 0)
{
BindDataSource();
}
var data = order.AsQueryable();
var queryString = Request.Query;
string grid = queryString["ej2grid"];
string sort = queryString["$orderby"]; //sorting
string filter = queryString["$filter"];
string auto = queryString["$inlineCount"];
if (filter != null) // to handle filter opertaion
{
if (filter.Contains("substring"))//searching
{
var key = filter.Split(new string[] { "'" }, StringSplitOptions.None)[1];
data = data.Where(fil => fil.CustomerID.ToString().Contains(key.ToUpper())
|| fil.EmployeeID.ToString().Contains(key)
|| fil.Freight.ToString().Contains(key)
|| fil.OrderID.ToString().Contains(key));
}
else
{
var newfiltersplits = filter;
var filtersplits = newfiltersplits.Split('(', ')', ' ');
. . .
switch (filterfield)
{
case "OrderID":
data = (from cust in data
where cust.OrderID.ToString() == filtervalue.ToString()
select cust);
break;
case "CustomerID":
data = (from cust in data
where cust.CustomerID.ToLower().StartsWith(filtervalue.ToString())
select cust);
break;
. . .
}
}
if (sort != null) //Sorting
{
var sortfield = sort.Split(',');
. . .
}
if (queryString.Keys.Contains("$inlinecount"))
{
. . .
return new { Items = data.Skip(skip).Take(top), Count = count };
}
else
{
return data;
}
} |