@page "/multiple-selection-row-template"
@using Syncfusion.Blazor.Grids
<SfGrid @ref="@Grid" DataSource="@Orders" AllowFiltering="true" AllowPaging="true" Height="315">
<GridSelectionSettings Type="SelectionType.Multiple">GridSelectionSettings>
<GridEvents DataBound="Data" TValue="Order">GridEvents>
<GridTemplates>
<RowTemplate>
@{
var employee = (context as Order);
<td>
@employee.OrderID
td>
<td>
@employee.CustomerID
td>
<td>
@employee.OrderDate
td>
<td>
@employee.Freight
td>
}
RowTemplate>
GridTemplates>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" TextAlign="TextAlign.Center" Width="120">GridColumn>
<GridColumn Field=@nameof(Order.CustomerID) HeaderText="Customer ID" TextAlign="TextAlign.Center" Width="150">GridColumn>
<GridColumn Field=@nameof(Order.OrderDate) HeaderText=" Order Date" Format="d" Type="ColumnType.Date" TextAlign="TextAlign.Center" Width="130">GridColumn>
<GridColumn Field=@nameof(Order.Freight) HeaderText="Freight" Format="C2" TextAlign="TextAlign.Center" Width="120">GridColumn>
GridColumns>
SfGrid>
@code{
SfGrid<Order> Grid;
public List<Order> Orders { get; set; }
List<double> SelectIndex { get; set; }
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 = DateTime.Now.AddDays(-x),
}).ToList();
}
public async Task Data(object args)
{
var Source = await Grid.GetCurrentViewRecords();
var IndexNum = 0;
SelectIndex = new List<double>();
foreach (var record in Source)
{
if (record.CustomerID == "ALFKI")
{
SelectIndex.Add(IndexNum);
}
IndexNum++;
}
await Grid.SelectRows(SelectIndex.ToArray());
}
public class Order
{
public int? OrderID { get; set; }
public string CustomerID { get; set; }
public DateTime? OrderDate { get; set; }
public double? Freight { get; set; }
}
}