Как получить данные всей строки после нажатия контекстного меню в Sync Fusion Grid?

У меня есть сценарий, в котором есть сетка SyncFusion с 6 столбцами. Как только пользователь нажимает ContextMenu для строки, мне нужно получить все данные строки. как сделать то же самое? Справочная сетка и контекстное меню, как показано ниже.

1 ответ

Вы можете использовать настраиваемый элемент контекстного меню и использовать аргументы события contextMenuItem в rowInfo для получения данных строки. Вы можете обратиться к фрагменту кода ниже: Документация: https://blazor.syncfusion.com/documentation/datagrid/context-menu#custom-context-menu-items https://blazor.syncfusion.com/documentation/datagrid/ события#contextmenuitemclicked

      <SfGrid @ref="DefaultGrid" DataSource="@Orders" AllowPaging="true" ContextMenuItems="@(new List<ContextMenuItemModel>() { new ContextMenuItemModel { Text = "fetch data", Id = "fetch data" } })">
<GridEvents ContextMenuItemClicked="OnContextMenuClick" TValue="Order"></GridEvents>
<GridPageSettings PageSize="8"></GridPageSettings>
<GridColumns>
    <GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" TextAlign="TextAlign.Right" Width="120" IsPrimaryKey="true"></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>
</GridColumns>
      @code {
public List<Order> Orders { get; set; }
private Order rowData { get; set; }


private SfGrid<Order> DefaultGrid;

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 class Order
{
    public int? OrderID { get; set; }
    public string CustomerID { get; set; }
    public DateTime? OrderDate { get; set; }
    public double? Freight { get; set; }
}



public void OnContextMenuClick(ContextMenuClickEventArgs<Order> args)
{
    if (args.Item.Id == "fetch data")
    {
        rowData = args.RowInfo.RowData;
 
       

    }
}

}

Другие вопросы по тегам