|
<EjsGrid @ref="@Grid" DataSource="@Orders" AllowFiltering="true" AllowPaging="true" Height="315">
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" 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="dd/MM/yyyy" Type="ColumnType.Date" TextAlign="TextAlign.Right" Width="130">
<FilterTemplate>
@{
<EjsDropDownList Placeholder="Order Date" ID="OrderDate" Value="@((string)(context as PredicateModel).Value)" DataSource="@Dropdown" TValue="string" TItem="Data">
<DropDownListEvents ValueChange="@Change" TValue="string"></DropDownListEvents>
<DropDownListFieldSettings Value="OrderDate" Text="OrderDate"></DropDownListFieldSettings>
</EjsDropDownList>
}
</FilterTemplate>
</GridColumn>
<GridColumn Field=@nameof(Order.Freight) HeaderText="Freight" Format="C2" TextAlign="TextAlign.Right" Width="120"></GridColumn>
</GridColumns>
</EjsGrid>
@code{
EjsGrid<Order> Grid;
public List<Order> Orders { get; set; }
List<Data> Dropdown = new List<Data>();
protected override void OnInitialized()
{
Orders = Enumerable.Range(1, 75).Select(x => new Order()
{
OrderID = 1000 + x,
CustomerID = (new string[] { "ALFKI", "ANANTR", "ANTON", "BLONP", "BOLID" })[new Random().Next(5)],
Freight = 2.1 * x,
OrderDate = (new DateTime[] { new DateTime(2010, 5, 1), new DateTime(2010, 5, 2), new DateTime(2010, 5, 3) })[new Random().Next(3)],
}).ToList();
foreach (var record in Orders)
{
Dropdown.Add(new Data() { OrderDate = record.OrderDate.ToString("dd/MM/yyyy") });
}
}
public class Data
{
public string OrderDate { get; set; }
}
public class Order
{
. . . . .. .
public DateTime OrderDate { get; set; }
public double? Freight { get; set; }
}
public void Change(Syncfusion.EJ2.Blazor.DropDowns.ChangeEventArgs<string> args)
{
//parse the string value to datetime and convert to required format MM/dd/yyyyy
Grid.FilterByColumn("OrderDate", "contains", Convert.ToDateTime(DateTime.ParseExact(args.Value, "yyyy-MM-dd", CultureInfo.InvariantCulture).ToString("MM/dd/yyyy")));
}
}
|