DataGrid RowSelect + ContextMenu

Hi
I have found a bug, it seams, when having a Datagrid with a RowSelect And a Context Menu in the same Datagrid
Se gif for UI Behavier:

Radzen RowSelect And ContextMenu Error

it is only a problem when both are used

code in question:

            <RadzenDataGrid @ref="_selectedGridSfc" TItem="SfcInformationVm" Data="@_sfcInformationVms"
                            RowSelect="@(async args => await OnSelectedSfcAsync(args, true))"
                            LoadData="@LoadDataAsync"
                            Count="@_count"
                            @bind-Value=@_selectedSfc
                            class="rz-border-radius-3"
                            PageSize="5"
                            Density="Density.Compact"
                            AllowPaging="true"
                            EditMode="DataGridEditMode.Single"
                            SelectionMode="DataGridSelectionMode.Single"
                            FilterMode="FilterMode.Advanced"
                            FilterPopupRenderMode="PopupRenderMode.OnDemand"
                            AllowFiltering="true"
                            AllowSorting="true"
                            AllowMultiColumnSorting="false"
                            AllowColumnPicking="true"
                            ColumnsPickerAllowFiltering="true"
                            AllowColumnResize="true"
                            PagerHorizontalAlign="HorizontalAlign.Center"
                            PageSizeOptions="@_pageSizeOptions">
                <Columns>
                    <RadzenDataGridColumn TItem="SfcInformationVm" Filterable="true" Sortable="true" Property="PartNumber" Title="@LanguageTable.PartNo"></RadzenDataGridColumn>
                    <RadzenDataGridColumn TItem="SfcInformationVm" Filterable="true" Sortable="true" Property="SerialNumber" Title="@GlobalTable.SerialNumber"></RadzenDataGridColumn>
                    <RadzenDataGridColumn TItem="SfcInformationVm" Property="FrameSize" Title="@LanguageTable.FrameSize"></RadzenDataGridColumn>
                    <RadzenDataGridColumn Property="@nameof(SfcInformationVm.State)" FilterOperator="FilterOperator.Equals" Title="@LanguageTable.State"></RadzenDataGridColumn>
                    <RadzenDataGridColumn TItem="SfcInformationVm" Property="CreatedDate" Title="@LanguageTable.CreatedDate"></RadzenDataGridColumn>
                    <RadzenDataGridColumn TItem="SfcInformationVm" Filterable="false" Sortable="false" Property="Discriminator" Title="@LanguageTable.Discriminator"></RadzenDataGridColumn>
                    <RadzenDataGridColumn TItem="SfcInformationVm" Filterable="false" Sortable="true" Property="ProcessLotName" Title="@LanguageTable.ProcessLot"></RadzenDataGridColumn>
                    <AuthorizeView Roles="SuperUser, Administrator">
                        <RadzenDataGridColumn Pickable="false" TItem="SfcInformationVm" Context="_selectedSfc" Filterable="false" Sortable="false" TextAlign="TextAlign.Left">
                            <Template Context="SfcInformationVm">
                                <RadzenButton ButtonStyle="ButtonStyle.Light" Icon="more_horiz" Click=@(args => OpenContextMenu(args, SfcInformationVm)) Size="ButtonSize.Small" class="rz-my-1 rz-ms-1" MouseEnter="@(args => ShowTooltip(args, new TooltipOptions() { Position = TooltipPosition.Bottom }))" />
                            </Template>
                        </RadzenDataGridColumn>
                    </AuthorizeView>
                </Columns>
            </RadzenDataGrid>
 private void OpenContextMenu(MouseEventArgs args, SfcInformationVm selectedSfc)
 {
     ContextMenuService.Open(args,
         new List<ContextMenuItem> {
             new ContextMenuItem()
             {
                 Text = LanguageTable.Complete,
                 Value = 1,
                 Icon = "task_alt",
                 Disabled = IsManuallyCompleteButtonDisabled()
             },
             new ContextMenuItem()
             {
                 Text = LanguageTable.Rework,
                 Value = 2,
                 Icon = "build_circle",
                 Disabled = true
             },
             new ContextMenuItem()
             {
                 Text = LanguageTable.Scrap,
                 Value = 3,
                 Icon = "recycling",
                 Disabled = IsScrapButtonDisabled()
             },
             new ContextMenuItem()
             {
                 Text = LanguageTable.Hold,
                 Value = 4,
                 Icon = "front_hand",
                 Disabled = true
             },
             new ContextMenuItem()
             {
                 Text = LanguageTable.Fail,
                 Value = 5,
                 Icon = "feedback",
                 Disabled = true
             },
             new ContextMenuItem()
             {
                 Text = LanguageTable.RollBack,
                 Value = 6,
                 Icon = "low_priority",
                 Disabled = true
             },
         },
         async (e) =>
         {
             switch (e.Value)
             {
                 case 1:
                     await ConfirmManuallyCompleteAsync();
                     break;
                 case 2:
                     break;
                 case 3:
                     await ConfirmScrapAsync();
                     break;
                 case 4:
                     break;
                 case 5:
                     break;
                 case 6:
                     break;
             }
         }
      );
 }

Please help
And thanks in advance :slight_smile:

Works normally on our demo:

1 Like