|
<button @onclick="CheckEditState">CheckEditState</button>
<SfGrid @ref="Grid" DataSource="@Orders" AllowPaging="true" Toolbar="@(new List<string>() { "Add", "Delete", "Update", "Cancel" })" Height="315">
<GridEvents OnCellEdit="CellEdit" OnCellSave="CellSaveHandler" TValue="Order"></GridEvents>
<GridEditSettings AllowAdding="true" AllowEditing="true" AllowDeleting="true" Mode="EditMode.Batch"></GridEditSettings>
..
..
@code{
bool IsEdit { get; set; }
public void CheckEditState() {
Console.WriteLine(IsEdit);
}
public void CellEdit(CellEditArgs<Order> args)
{
IsEdit = true;
}
public void CellSaveHandler(CellSaveArgs<Order> args)
{
IsEdit = false;
}
} |
|
@inject IJSRuntime JSRuntime
..
..
protected override void OnAfterRender(bool firstRender) {
if (firstRender) {
var dotNetReference = DotNetObjectReference.Create(this);
JSRuntime.InvokeAsync<string>("KeyPressHandler", Grid.ID , dotNetReference);
}
}
[JSInvokable]
public void KeyDownHandler() {
IsEdit = false;
}
|
|
function KeyPressHandler(id, dotNetReference) {
document.getElementById(id).addEventListener('keydown', (e) => {
if (e.key == "Escape") {
dotNetReference.invokeMethodAsync('KeyDownHandler');
}
});
} |
|
..
<script src="~/JavaScript.js"></script>
. . |