Command Column
The Smart.Grid built-in Command Column can be used to Edit, Delete or perform any other custom function on a row.
To create a command column, create a new instance of GridEditing() object
and set the Visible property of the GridCommandColumn
Finally, attach the editing object to the Grid:
@inject WeatherForecastService ForecastService
<Grid Editing="@editing">
<Columns>
<Column DataField="Date" Label="Date"> </Column>
<Column DataField="TemperatureC" Label="Temp. (C)"> </Column>
<Column DataField="TemperatureF" Label="Temp. (F)"> </Column>
<Column DataField="Summary" Label="Summary"> </Column>
</Columns>
</Grid>
@code{
GridEditing editing = new GridEditing()
{
Enabled = true,
Action = GridEditingAction.None,
Mode = GridEditingMode.Row,
CommandColumn = new GridEditingCommandColumn() { Visible = true }
};
private WeatherForecast[] forecast;
protected override async Task OnInitializedAsync()
{
forecast = await ForecastService.GetForecastAsync(DateTime.Now);
}
}
Command Column Inline
The Command Column can be displayed inline, meaning that it only appears when the row is hovered.
GridEditing editing = new GridEditing()
{
Enabled = true,
Action = GridEditingAction.None,
Mode = GridEditingMode.Row,
CommandColumn = new GridEditingCommandColumn() { Visible = true, Inline = true}
};
Command Column Position
It is possible to change the position of the command column by using the Position property.
GridEditing editing = new GridEditing()
{
Enabled = true,
Action = GridEditingAction.None,
Mode = GridEditingMode.Row,
CommandColumn = new GridEditingCommandColumn() { Visible = true, Position = Position.Near}
};
Custom Command Column
You can also create a custom command column by using the DataSource property.
In this example, we hide the Delete Column and create a new custom one:
GridEditing editing = new GridEditing()
{
Enabled = true,
Action = GridEditingAction.None,
Mode = GridEditingMode.Row,
CommandColumn = new GridEditingCommandColumn()
{
Visible = true,
Inline = false,
DataSource = new GridEditingCommandColumnDataSource()
{
CommandColumnDelete = new GridCommand() { Visible = false },
CommandColumnCustom = new GridCommand()
{
Icon = "smart-icon-star",
Command = "notify",
Visible = true,
Label = "Notify Me"
}
}
}
};