@using Syncfusion.Blazor.Inputs
@using Syncfusion.Blazor.Grids
<SfGrid @ref="Grid" AllowPaging="true" DataSource="@Orders" Toolbar="@(new List<string>() { "Add", "Edit", "Delete", "Cancel", "Update" })">
<GridEditSettings AllowEditing="true" AllowDeleting="true" AllowAdding="true" Mode="@EditMode.Normal"></GridEditSettings>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" Visible="false" IsPrimaryKey="true" TextAlign="@TextAlign.Center" Width="140"></GridColumn>
<GridColumn Field=@nameof(Order.FirstName) HeaderText="First Name" Width="150">
<Template>
@{
var employee = (context as Order);
<div>
First Name
</div>
<div @onkeydown:stopPropagation="true">
<SfTextBox Value="@employee.FirstName" ValueChange="@((args)=>OnChange(args,employee, "FirstName"))"></SfTextBox>
</div>
}
</Template>
</GridColumn>
<GridColumn Field=@nameof(Order.LastName) HeaderText="Last Name" Width="150">
<Template>
@{
var employee = (context as Order);
<div>
Last Name
</div>
<div @onkeydown:stopPropagation="true">
<SfTextBox Value="@employee.LastName" ValueChange="@((args)=>OnChange(args,employee, "LastName"))"></SfTextBox>
</div>
}
</Template>
</GridColumn>
</GridColumns>
</SfGrid>
@code{
SfGrid<Order> Grid { get; set; }
public List<Order> Orders { get; set; }
public async Task OnChange(ChangedEventArgs Args, Order Val, string field)
{
Val.GetType().GetProperty(field).SetValue(Val, Args.Value);
var RowIndex = await Grid.GetRowIndexByPrimaryKey(Val.OrderID);
await Grid.UpdateRow(RowIndex, Val);
} |
<SfGrid @ref="Grid" AllowPaging="true" DataSource="@Orders" Toolbar="@(new List<string>() { "Add", "Edit", "Delete", "Cancel", "Update" })">
<GridEditSettings AllowEditing="true" AllowDeleting="true" AllowAdding="true" Mode="@EditMode.Normal"></GridEditSettings>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" Visible="false" IsPrimaryKey="true" TextAlign="@TextAlign.Center" Width="140"></GridColumn>
<Template>
@{
var employee = (context as Order);
<div>
First Name
</div>
<div @onkeydown:stopPropagation="true">
<SfTextBox @bind-Value="@employee.FirstName"></SfTextBox>
</div>
}
</Template>
</GridColumn>
. . .
<Template>
@{
var employee = (context as Order);
}
<div>
ShipCountry
</div>
<SfComboBox TValue="string" TItem="Country" @bind-Value="@employee.ShipCountry" DataSource="@LocalData">
<ComboBoxFieldSettings Value="Text" Text="Text"></ComboBoxFieldSettings>
</SfComboBox>
</Template>
</GridColumn>
</GridColumns>
</SfGrid>
@code{
. . .
}
|