Skip to main content
A newer version of this page is available. .

DxGridCommandColumn.CellEditTemplate Property

Specifies a template used to display the command column’s edit cell.

Namespace: DevExpress.Blazor

Assembly: DevExpress.Blazor.v23.1.dll

NuGet Package: DevExpress.Blazor

Declaration

[Parameter]
public RenderFragment<GridCommandColumnCellEditTemplateContext> CellEditTemplate { get; set; }

Property Value

Type Description
RenderFragment<GridCommandColumnCellEditTemplateContext>

The template for the command column’s edit cell.

Remarks

Users can employ an inline edit row or invoke a standard or pop-up edit form to edit data in the Grid. The EditMode property specifies the current edit mode.

Declare a DxGridCommandColumn object in the Columns template to display a command column. This column contains the predefined CRUD-related buttons (New, Edit, and Delete).

Blazor Grid Command Column

In EditRow edit mode, the column also displays the Save and Cancel buttons.

Blazor Grid Inline Edit Row

You can define the CellEditTemplate to implement custom command elements in the edit row‘s command cell. Use the template’s context parameter to access the CommandColumn and DataItem objects. You can also obtain the Grid object and call the following edit-related methods:

The following example hides the predefined Save and Cancel buttons and implements custom buttons within the edit row:

Blazor Grid Edit Row with Custom Buttons

@inject NwindDataService NwindDataService

<DxGrid @ref="MyGrid"
        PageSize="5"
        Data="GridDataSource"
        EditModelSaving="OnEditModelSaving"
        DataItemDeleting="OnDataItemDeleting"
        KeyFieldName="EmployeeId"
        EditMode="GridEditMode.EditRow" >
    <Columns>
        <DxGridCommandColumn Width="200px" CancelButtonVisible="false" SaveButtonVisible="false">
            <CellEditTemplate>
                <DxButton Click="@(() => MyGrid.SaveChangesAsync())" Text="Update" />
                <DxButton Click="@(() => MyGrid.CancelEditAsync())" Text="Discard" />
            </CellEditTemplate>
        </DxGridCommandColumn>
        <DxGridDataColumn FieldName="FirstName" />
        <DxGridDataColumn FieldName="LastName" />
        <DxGridDataColumn FieldName="Title" />
        <DxGridDataColumn FieldName="HireDate" />
    </Columns>
</DxGrid>

@code {
    IEnumerable<object> GridDataSource { get; set; }
    NorthwindContext Northwind { get; set; }
    IGrid MyGrid { get; set; }

    protected override async Task OnInitializedAsync() {
        Northwind = NorthwindContextFactory.CreateDbContext();
        GridDataSource = await Northwind.Employees.ToListAsync();
    }

    async Task OnEditModelSaving(GridEditModelSavingEventArgs e) {
        var editModel = (Employee)e.EditModel;
        // Re-query a data item from the database.
        var dataItem = e.IsNew ? new Employee() : Northwind.Employees.Find(editModel.EmployeeId);
        // Assign changes from the edit model to the data item.
        if (dataItem != null) {
            dataItem.FirstName = editModel.FirstName;
            dataItem.LastName = editModel.LastName;
            dataItem.Title = editModel.Title;
            dataItem.HireDate = editModel.HireDate;
            // Post changes to the database.
            if (e.IsNew)
                await Northwind.AddAsync(dataItem);
            await Northwind.SaveChangesAsync();
            // Reload the entire Grid.
            GridDataSource = await Northwind.Employees.ToListAsync();
        }
    }

    async Task OnDataItemDeleting(GridDataItemDeletingEventArgs e) {
        // Re-query a data item from the database.
        var dataItem = Northwind.Employees.Find((e.DataItem as Employee).EmployeeId);
        if (dataItem != null) {
            // Remove the data item from the database.
            Northwind.Remove(dataItem);
            await Northwind.SaveChangesAsync();
            // Reload the entire Grid.
            GridDataSource = await Northwind.Employees.ToListAsync();
        }
    }
}

For more information about templates in the Grid component, refer to the following topic: Templates in Blazor Grid.

Implements

See Also