@using Syncfusion.Blazor.Inputs
@inject NavigationManager NavManager
<SfGrid AllowPaging="true" DataSource="@Orders" Toolbar="@(new List<string>() { "Add", "Edit", "Delete", "Cancel", "Update" })">
<GridEditSettings AllowEditing="true" AllowDeleting="true" AllowAdding="true" Mode="@EditMode.Normal"></GridEditSettings>
<GridEvents OnActionBegin="ActionBeginHandler" TValue="Order"></GridEvents>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" IsPrimaryKey="true" TextAlign="@TextAlign.Center" Width="140"></GridColumn>
<EditTemplate>
<div class="form-group col-md-3">
<SfTextBox ID="CustomerID" Placeholder="Customer Name" @bind-Value="@((context as Order).CustomerID)" FloatLabelType='@FloatLabelType.Auto'></SfTextBox>
</div>
<div class="form-group col-md-3">
<button @onclick="Click">Button</button>
</div>
</EditTemplate>
</GridColumn>
. . .
</GridColumns>
</SfGrid>
@code{
public List<Order> Orders { get; set; }
Order EditRowDetail { get; set; }
. . .
public void Click()
{
if(EditRowDetail.OrderID == 1002 || EditRowDetail.OrderID == 1003 || EditRowDetail.OrderID == 1004) //moved to counter page if it contains the mentioned OrderID's
{
NavManager.NavigateTo("/counter"); //navigate to another page
}
}
public void ActionBeginHandler(ActionEventArgs<Order> args)
{
if (args.RequestType.Equals(Syncfusion.Blazor.Grids.Action.BeginEdit))
{
EditRowDetail = args.Data; //get the edited row details
}
// Here you can customize your code
}} |