I have an sfgrid control with action button.
I need to show grid action button (edit/delete/view) in below format
|
<SfGrid ID="Grid" @ref="Grid" DataSource="@Employees" Width="900">
<GridEditSettings AllowAdding="true" AllowEditing="true" AllowDeleting="true" Mode="EditMode.Normal"></GridEditSettings>
<GridColumns>
<GridColumn Field=@nameof(EmployeeData.EmployeeID) HeaderText="Employee ID" IsPrimaryKey="true" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(EmployeeData.HireDate) HeaderText="Hire Date" Format="d" TextAlign="TextAlign.Left" Width="180"></GridColumn>
<GridColumn TextAlign="TextAlign.Center" Width="150">
<Template>
@{
var employee = (context as EmployeeData);
<SfDropDownButton Content=". . .">
<DropDownButtonEvents ItemSelected="@((e) => ItemSelected(e, employee))"></DropDownButtonEvents>
<DropDownMenuItems>
<DropDownMenuItem Text="Edit"></DropDownMenuItem>
<DropDownMenuItem Text="Delete"></DropDownMenuItem>
<DropDownMenuItem Text="View"></DropDownMenuItem>
</DropDownMenuItems>
</SfDropDownButton>
}
</Template>
</GridColumn>
</GridColumns>
</SfGrid>
@code{
SfGrid<EmployeeData> Grid;
private bool IsVisible { get; set; } = true;
public List<EmployeeData> Employees { get; set; }
private async Task ItemSelected(MenuEventArgs args, EmployeeData data)
{
if (args.Item.Text == "Edit")
{
await Task.Yield();
await Grid.StartEditAsync();
}
if (args.Item.Text == "Delete")
{
await Grid.DeleteRecordAsync();
}
if (args.Item.Text == "View")
{
//show the passed record details(data) in dialog view based on your requiremnet
}
}
. ..
} |
Thanks for reply..
I need as above screencast format.
please help,,,
|
<SfGrid ID="Grid" @ref="Grid" DataSource="@Employees" Width="900">
<GridEditSettings AllowAdding="true" AllowEditing="true" AllowDeleting="true" Mode="EditMode.Normal"></GridEditSettings>
<GridEvents CommandClicked="OnCommandClicked" TValue="EmployeeData"></GridEvents>
<GridColumns>
<GridColumn Field=@nameof(EmployeeData.EmployeeID) HeaderText="Employee ID" IsPrimaryKey="true" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(EmployeeData.HireDate) HeaderText="Hire Date" Format="d" TextAlign="TextAlign.Left" Width="180"></GridColumn>
<GridColumn HeaderText="Manage Records" Width="150">
<GridCommandColumns>
<GridCommandColumn ButtonOption="@(new CommandButtonOptions() { IconCss="e-icons e-more-icon", CssClass = "e-flat" })"></GridCommandColumn>
</GridCommandColumns>
</GridColumn>
</GridColumns>
</SfGrid>
<SfDialog Width="250px" IsModal="true" @bind-Visible="@IsVisible">
<DialogTemplates>
<Content>
<SfButton CssClass="e-round" IconCss="e-icons e-plus-icon" OnClick="Clicked" IsPrimary="true"></SfButton>
@*similarly render button as per your*@
</Content>
</DialogTemplates>
</SfDialog>
<style>
.e-plus-icon::before {
content: '\e823';
} .e-more-icon::before {
content: '\e615';
}
</style>
@code {
public void Clicked()
{
Grid.AddRecordAsync();
}
SfGrid<EmployeeData> Grid;
private bool IsVisible { get; set; } = true;
public List<EmployeeData> Employees { get; set; }
public void OnCommandClicked(CommandClickEventArgs<EmployeeData> args)
{
IsVisible = true;
// Perform required operations here
} |