<SfGrid DataSource="@Orders" AllowPaging="true" Toolbar="@(new List<string>() { "Add", "Edit", "Delete", "Cancel", "Update" })" Height="315">
<GridEditSettings AllowAdding="true" AllowEditing="true" AllowDeleting="true" Mode="EditMode.Normal"></GridEditSettings>
<GridEvents OnActionBegin="ActionBeginHandler" TValue="Order"></GridEvents>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" IsPrimaryKey="true" ValidationRules="@(new ValidationRules{ Required=true})" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(Order.ShipCountry) HeaderText="Ship Country" EditType="EditType.DropDownEdit" Width="150">
<EditTemplate>
<SfDropDownList TValue="string" @ref="ddlObj" TItem="Countries" Placeholder="Select a game" DataSource="@Country" AllowFiltering="true">
<DropDownListFieldSettings Value="Name"></DropDownListFieldSettings>
<DropDownListEvents TValue="string" TItem="Countries" ValueChange="ValueChange" Filtering="OnFilter"></DropDownListEvents>
</SfDropDownList>
</EditTemplate>
</GridColumn>
</GridColumns>
</SfGrid>
@code{
private async Task OnFilter(FilteringEventArgs args)
{
args.PreventDefaultAction = true;
var query = new Query().Where(new WhereFilter() { Field = "Name", Operator = "contains", value = args.Text, IgnoreCase = true });
query = !string.IsNullOrEmpty(args.Text) ? query : new Query();
await ddlObj.Filter(Country1, query);
}
public void ActionBeginHandler(ActionEventArgs<Order> args)
{
if (DropDownValue != string.Empty && args.Action == "Edit" && args.RequestType.Equals(Syncfusion.Blazor.Grids.Action.Save))
{
args.Data.ShipCountry = DropDownValue;
DropDownValue = string.Empty;
}
}
public void ValueChange(ChangeEventArgs<string, Countries> args)
{
DropDownValue = args.Value;
}
}
|