簡體   English   中英

Blazor Syncfusion SFGrid 在添加后不允許編輯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM