|
<SfGrid @ref="Grid" DataSource="@Orders" AllowPaging="true" Toolbar="@(new List<string>() { "Cancel", "Update" })">
...
<GridEvents OnCellEdit="OnCellEdit" ... TValue="Order"></GridEvents>
<GridColumns>
<GridColumn Field=@nameof(Order.OrderID) HeaderText="Order ID" IsPrimaryKey="true" TextAlign="TextAlign.Right" Width="120">
<EditTemplate>
...
<SfNumericTextBox ID="OrderID" @bind-Value="con.OrderID"
@onkeyup="@(e=>KeyUpHandler(e, con.OrderID, null , "OrderID" , "CustomerID",inputvalue))"> </SfNumericTextBox>
</EditTemplate>
</GridColumn>
<EditTemplate>
...
<SfTextBox ID="CustomerID" @bind-Value="con.CustomerID" OnInput="OnInput"
@onkeydown="@(e=>KeyDownHandler(e,con.OrderID, (e.Key == "Enter" && !e.ShiftKey ? "ShipCountry": "OrderID")))"
@onkeyup="@(e=>KeyUpHandler(e, con.OrderID,null, "CustomerID" , "ShipCountry",inputvalue))">
</SfTextBox>
</EditTemplate>
</GridColumn>
<EditTemplate>
...
<SfTextBox ID="ShipCountry" @bind-Value="con.ShipCountry" OnInput="OnInput"
@onkeyup="@(e=>KeyUpHandler(e, con.OrderID, "CustomerID","ShipCountry" , "Boolean",inputvalue))">
</SfTextBox>
</EditTemplate>
</GridColumn>
<EditTemplate>
...
<SfCheckBox ID="Boolean" @bind-Checked="con.Boolean" ValueChange="ValueChange" TChecked="bool"
@onkeyup="@(e=>KeyUpHandler(e, con.OrderID, "ShipCountry","Boolean" , null,inputvalue))">
</SfCheckBox>
</EditTemplate>
</GridColumn>
</GridColumns>
</SfGrid>
@code{
public object inputvalue;
public void OnInput(ChangeEventArgs args)
{
inputvalue = args.Value;
}
public void ValueChange(Syncfusion.Blazor.Buttons.ChangeEventArgs<bool> args)
{
inputvalue = args.Checked;
}
public void ValueChange(Syncfusion.Blazor.Inputs.ChangeEventArgs<int?> args)
{
inputvalue = args.Value;
}
public void OnCellEdit(CellEditArgs<Order> args)
{
inputvalue = args.Data.GetType().GetProperty(args.ColumnName).GetValue(args.Data, null);
}
...
public async void KeyUpHandler(KeyboardEventArgs args, int? OrderID,string leftField, string Field , string rightField, object FieldValue)
{
if (Grid.IsEdit && (args.Key == "ArrowDown" || args.Key == "ArrowUp"))
{
var rowIndex = await Grid.GetRowIndexByPrimaryKey(OrderID);
await Grid.UpdateCell(rowIndex, Field, FieldValue);
await Grid.EndEdit();
...
}
if (Grid.IsEdit && args.Key == "ArrowLeft" && leftField != null)
{
var rowIndex = await Grid.GetRowIndexByPrimaryKey(OrderID);
await Grid.UpdateCell(rowIndex, Field, FieldValue);
await Grid.EditCell(rowIndex, leftField);
}
if (Grid.IsEdit && args.Key == "ArrowRight" && rightField != null)
{
var rowIndex = await Grid.GetRowIndexByPrimaryKey(OrderID);
await Grid.UpdateCell(rowIndex, Field, FieldValue);
await Grid.EditCell(rowIndex, rightField);
}
}
}
|