[英]Blazor Syncfusion SFGrid not allowing Edit after Add
我的 razor 頁面中有簡單的 SFGrid 組件。
<SfGrid @ref="_grid" Toolbar="@(new List<string> { "Add", "Update", "Cancel" })" DataSource="Data" EnableStickyHeader ="true"> <GridEditSettings AllowAdding="true" AllowDeleting="true" AllowEditing="true" Mode="EditMode.Batch"> </GridEditSettings> <GridEvents TValue="MODEL" CellSelected="OnCellSelected" OnActionComplete="OnActionComplete" OnBatchAdd="OnBatchAdd" OnBatchCancel="OnBatchCancel"> </GridEvents> <GridSelectionSettings Mode="SelectionMode.Cell"></GridSelectionSettings> <GridColumns> <GridColumn Field="@nameof(Id)" IsPrimaryKey="true"> </GridColumn> <GridColumn Field="@nameof(Name)" HeaderText="Name"></GridColumn> </GridColumns> </SfGrid>
加載網格時,它是空的。 我點擊添加按鈕添加一個新行。 我 select 字段名稱中的一些值。 我在網格外單擊,然后無法編輯該值。
如果我已經在網格中填充了一些數據,則不會發生這種情況。 只有當網格完全為空時才會發生。
如果我使 Id 列可見,那么它可以使用空網格,但我不想使該列可見。
還有其他解決辦法嗎?
這是網格的批量編輯模式的問題。 網格設計為當網格處於“臟”state 時,將批量編輯模式下所做的所有更改更新到數據源,這意味着有未提交的更改。
要解決此問題,您可以嘗試在 CellSelected 事件中調用網格上的 Update 方法。 這將立即更新對網格所做的更改。 這是代碼:
@code {
private SfGrid<MODEL> _grid;
private void OnCellSelected(SelectedCellArgs<MODEL> args)
{
_grid.Update();
}
}
您還可以嘗試在 OnActionComplete 事件中調用網格上的 Commit 方法,該事件在網格中的操作完成后觸發,例如添加新行或更新單元格值。 這是代碼:
@code {
private void OnActionComplete(ActionEventArgs<MODEL> args)
{
_grid.Commit();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.